DDL主要是用在定义或改变表(TABLE必威:)的结构

5.三大范式

  04.表联接分为哪几种类型?

内连接,外连接和交叉联接(数据库原理)

三、 数据库

  1. 为什么要设计数据库?

首先,良好的数据库设计:

  1. 可以节省数据的存储空间

  2. 能够保证数据的完整性

  3. 方便进行数据库应用系统的开发

糟糕的数据库设计:

  1. 数据冗余、存储空间浪费

  2. 内存空间浪费

  3. 数据更新和插入的异常

由此,我们得出一个结论,当数据库比较复杂时,我们需要设计数据库

  1. 软件项目开发周期中数据库设计

必威 1

从上图我们可以看出,软件开发中设计数据库的步骤:

首先,我们要从现实世界的需求构建出一个模型,这种模型通过E——R图的方式反映,如果确定E——R满足了客户的需求,那么我们需要将E-R图规范化,构建出数据库模型图,当然在这个图表中要反映出各个数据对象之间的关系,最后我们根据数据库模型图构建出符合我们需求的数据库。

     需求分析阶段:分析客户的业务和数据处理需求

概要设计阶段:设计数据库的E-R模型图,确认需求信息的正确和完整

详细设计阶段:应用三大范式审核数据库结构

代码编写阶段:物理实现数据库,编码实现应用

软件测试阶段:……

安装部署:……

  1. 设计数据库的步骤

  2. 收集信息

与该系统有关的人员进行交流,座谈,充分了解用户需求,理解数据库需要完成的任务。

  1. 标识实体(Entity)

标识数据库要管理的关键对象或者实体,实体一般都是名词

  1. 标识每个实体的属性

  2. 标识实体之间的关系

4.E—R图

必威 2

映射基数:

主要分为以下几类:

一对一:一辆车只能对应一个车位

一对多:一个客房可以入住多个客人

多对一:多个客人可以入住一个客房

多对多:一本书可以被多个人接,一个人也可以借多本书

        或者是一个老师可以教多个班级,一个班级可以被多个老师教

一个关系的属性名的集合称为关系模式

Rdbms:

relational database management system 关系型数据库管理系统

  1. 仅有好的RDBMS并不足以避免数据冗余,必须在数据的设计中创建好的表结构

  2. Dr  E.F.codd,一个IBM研究员。最初定义了规范化的三个级别,范式是具有最小冗余的表结构

  3. 这些范式是:

第一范式(1ST NF—First  Normal   Form)

第一范式的目标是确保每列的原子性

如果没列都是不可再分的最小单元(也称为最小的原子单元),则满足第一范式(1nf)

第二范式(2nd NF—Second  Normal  Form)

如果一个关系满足1NF,并且除了主键以外的其他列,都依赖于该主键,则满足第二范式(2NF),第二范式要求每个表只描述一件事情。

第三范式(3rd NF—Third  Normal  Form)

如果一个关系满足2NF,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(3NF)

今天总算理解清楚了一点,:

第二范式是其他列都要依赖于主键列,但是没有说明是直接依赖还是间接依赖。也就是直接依赖和间接依赖均可以。但是第三范式明确指出只能是直接依赖。

如果出现间接依赖的情况,要单独独立出来一张表.

5,规范化和性能的关系

为满足某种商业目标,数据库性能比规范化数据库更重要

  具体策略和方法:

  1. 通过在给定的表中添加额外字段,以大量减少需要从中搜索信息所需的时间

  2. 通过在给定的表中插入计算列(比如成绩总分),以方便查询

        在数据规范化同时,要综合考虑数据库的性能。

4、巴斯-科德范式(BCNF)

术语解释

超键(Super Key):在关系中能唯一标识元组的属性或属性集称为关系模式的超键。
主键(Primary Key):
候选键(Candidate Key):最小超键,即在这个属性集合中找不出合适的子集能够满足条件的超键。
替代键(Alternate Keys):
外健(Foreign Key):
视图(View):基于 SQL 语句的结果集的可视化的表。
基表(Base Table):数据库中永久存储的表,并且基表就是实际存在的表,它是实际存储数据的逻辑表示。
SQL修饰语(Qualifier):
DISTINCT:剔除重复值

SELECT DISTINCT 列名称 FROM 表名称

TOP:规定要返回的记录的数目。
···
SELECT TOP number|percent column_name(s)
FROM table_name
···

理论

SQL有几种不同类型的语句,包括数据定义语言(DDL,Data Definition Language)、数据处理语言(DML,Data Manipulation Language),以及数据控制语言(DCL,Data Control Language)。DDL用于处理数据对象的定义,包括的语句有CREATE、ALTER,以及DROP。DML用于查询和修改数据,包括的语句有SELECT、INSERT、UPDATE、DELETE,以及MERGE。DCL用于处理权限管理,包括的语句有GRANT和REVOKE。

第一范式:第一范式要求表中的行必须是唯一的,属性是原子的。
第二范式:第二范式包括两条规则,首先数据必须满足第一范式,其次要求非键属性和候选键属性之间必须满足一定的条件。
第三范式:首先,数据必须满足第二范式,其次,所有非键属性必须非传递依赖于候选键。

 

 

  02.基本操作语句(DML DDL DCL)有哪些?语法是?

DML(data manipulation language):自动提交的数据库操作语言
它们是SELECT、UPDATE、INSERT、DELETE,就象它的名字一样

DDL(data definition language):自动提交的数据库定义语言
主要的命令有CREATE、ALTER、DROP等,DDL主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,他们大多在建立表时使用

DCL(Data Control Language):
是数据库控制功能。是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句。在默认状态下,只有sysadmin,dbcreator,db_owner或db_securityadmin等人员才有权力执行DCL

DQL:数据库查询语言,关键字:select

Insert、update、delete、select

这里以student表为例:

Insert into student(name,age) values(‘张三’,18)

Update student set name=’ 李四’ where id=1

Delete from student where id=2

见到update和delete,必须有where

Select * from student where id=1

3、第三范式(3NF):

属性不传递依赖于其他非主属性,非主键必须直接依赖于主键而不能传递依赖
例子:学生表(学号,姓名,学院编号,学院名称),学号是主键,姓名、学院编号、学院名称都完全依赖于学号,满足2NF,但不满足3NF,因为学院名称直接依赖的是学院编号 ,它是通过传递才依赖于主键.

SQL通配符

通配符 描述
% 替代一个或多个字符
_ 仅替代一个字符
[charlist] 字符列中的任何单一字符
[^charlist]或[!charlist] 不在字符列中的任何单一字符

第一范式(1NF):数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。

DBMS提供功能:DDL,DML,受控制的访问

代码

 

--创建数据库
IF DB_ID('testdb') IS NULL 
    CREATE DATABASE testdb;
GO

--创建表
USE testdb;

IF OBJECT_ID('dbo.Employees', 'U') IS NOT NULL    --类型'U'代表用户表
    DROP TABLE dbo.Employees;

CREATE TABLE dbo.Employees
    (
      empid INT NOT NULL ,
      firstname VARCHAR(30) NOT NULL ,
      lastname VARCHAR(30) NOT NULL ,
      hiredate DATE NOT NULL ,
      mgrid INT NULL ,
      ssn VARCHAR(20) NOT NULL ,
      salary MONEY NOT NULL
    );

-- 主键约束Primary key
ALTER TABLE dbo.Employees
ADD CONSTRAINT PK_Employees
PRIMARY KEY(empid);

-- 唯一约束Unique
ALTER TABLE dbo.Employees
  ADD CONSTRAINT UNQ_Employees_ssn
  UNIQUE(ssn);

  -- 外键约束Foreign key
IF OBJECT_ID('dbo.Orders', 'U') IS NOT NULL
  DROP TABLE dbo.Orders;

CREATE TABLE dbo.Orders
(
  orderid   INT         NOT NULL,
  empid     INT         NOT NULL,
  custid    VARCHAR(10) NOT NULL,
  orderts   DATETIME    NOT NULL,
  qty       INT         NOT NULL,
  CONSTRAINT PK_Orders
    PRIMARY KEY(OrderID)
);

ALTER TABLE dbo.Orders
  ADD CONSTRAINT FK_Orders_Employees
  FOREIGN KEY(empid)
  REFERENCES dbo.Employees(empid);

ALTER TABLE dbo.Employees
  ADD CONSTRAINT FK_Employees_Employees
  FOREIGN KEY(mgrid)
  REFERENCES Employees(empid);

 

3.关系模型

  06.如何绘制E-R图

  矩形;实体

  椭圆形:属性

  菱形:关系

2、第二范式(2NF):

不存在仅依赖于关键一部分的属性(不能存在部分依赖于主键)
例子:选课关系(学号,课程名称,成绩,学分),学号与课程名称是主键,其不满足2NF,因为课程名称->学分

数据库存储数据和关系

DBMS环境的五大要素:硬件、软件、数据、程序(procedures)、人。
数据库系统的要素:用户,数据库应用,数据库管理系统,数据库

数据模型

数据库的维护
物理存储情况变差

变长数据,增删改

本文由必威发布于必威-数据,转载请注明出处:DDL主要是用在定义或改变表(TABLE必威:)的结构

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。