第7章数据建模
第7章 数据建模
1.使用UML进行数据库设计 数据库建模 传统方法εE-R图。仅对数据建模,不能对行为建模, 如触发器、存储过程等建模。 ≯UML方法:类图。用类图描述数据库模式,用类描述 数据表,用类的操作来描述触发器和存储过程
1. 使用UML进行数据库设计 数据库建模 ➢传统方法:E-R图。仅对数据建模,不能对行为建模, 如触发器、存储过程等建模。 ➢UML方法:类图。用类图描述数据库模式,用类描述 数据表,用类的操作来描述触发器和存储过程
2.数据库设计阶段及概念 设计阶段 1)概念设计阶段 把用户的信息要求统一到一个整体逻辑结构中,结构能表达 用户的要求,独立于任何数据库管理系统(DBMs)软件和硬件。 2)逻辑设计阶段 把概念设计阶段得到的结果转换为与选用的DBMS所支持的数 据模型相符合的逻辑结构。(对关系数据库,结果是一组关系 模式的定义,是能被某一DBM接受的数据库定义。) 3)物理设计阶段 对给定的逻辑数据模型选取一个最适合应用要求的物理结构。 (物理结构包括:存储记录格式、存储记录安排、存取方法等
2. 数据库设计阶段及概念 设计阶段 1)概念设计阶段 把用户的信息要求统一到一个整体逻辑结构中,结构能表达 用户的要求,独立于任何数据库管理系统(DBMS)软件和硬件。 2)逻辑设计阶段 把概念设计阶段得到的结果转换为与选用的DBMS所支持的数 据模型相符合的逻辑结构。(对关系数据库,结果是一组关系 模式的定义,是能被某一DBMS接受的数据库定义。) 3)物理设计阶段 对给定的逻辑数据模型选取一个最适合应用要求的物理结构。 (物理结构包括:存储记录格式、存储记录安排、存取方法等
2数据库设计阶段及概念 概念与版型 数据库中的概念构造类型(版型)对应的UML元素 数据库 组件(构件) 模式(表及表关系集合)> 句 表 > 类 视图 > 类 域 > 类 索引 操作 主键 操作 外键 > 操作 唯一性约束(唯一键) 操作 检查约束(一般域约束) 操作 触发器约束 > 操作 存储过程 > 操作 表之间非确定性关系 组
2. 数据库设计阶段及概念 概念与版型 数据库中的概念 构造类型(版型) 对应的UML元素 数据库 > 组件(构件) 模式(表及表关系集合) > 包 表 > 类 视图 > 类 域 > 类 索引 > 操作 主键 > 操作 外键 > 操作 唯一性约束(唯一键) > 操作 检查约束(一般域约束) > 操作 触发器约束 > 操作 存储过程 > 操作 表之间非确定性关系 > 关联、聚合 表之间确定性关系 > 组合
3.数据库设计步骤 操作 > Table2 Tablel PK COL 2: VARCHAR(10) PK OL 0: VARCHAR (20) COL 3: VARCHAR(20) COL 1: NUMERIC(5, 0) CCL 4. DCM O .*FK COL 0: VARCHAR(20) ◆> K Table100 4(>压F出1:280 Tbe2中外键(CL0)不允许空
3. 数据库设计步骤 Table2中外键(COL_0)不允许空 ...操作
3.数据库设计步骤 CREATE TABLE Table2( COL 2 VARCHAR (10) NOT NULL, COL 3 VARCHAR(20)NOT NULL, COL 4 VARCHAR (10) NOT NULL UNIQUE COL O VARCHAR(20)NOT NULL, CONSTRAINT PK Table21 PRIMARY KEY NONCLUSTERED(COL 2) Go CREATE TABLE Tablel COL O VARCHAR (20) NOT NULL COL 1 NUMERIC(5) NOT NULL CONSTRAINT PK Table10 PRIMARY KEY NONCLUSTERED(COL 0) Go ALTER TABLE Table2 ADD CONSTRAINT FK Table20 FOREIGN KEY(COL 0) REFERENCES Tablel(COL 0) GO
3. 数据库设计步骤 CREATE TABLE Table2 ( COL_2 VARCHAR ( 10 ) NOT NULL, COL_3 VARCHAR ( 20 ) NOT NULL, COL_4 VARCHAR ( 10 ) NOT NULL UNIQUE, COL_0 VARCHAR ( 20 ) NOT NULL, CONSTRAINT PK_Table21 PRIMARY KEY NONCLUSTERED (COL_2) ) GO CREATE TABLE Table1 ( COL_0 VARCHAR ( 20 ) NOT NULL, COL_1 NUMERIC ( 5 ) NOT NULL, CONSTRAINT PK_Table10 PRIMARY KEY NONCLUSTERED (COL_0) ) GO ALTER TABLE Table2 ADD CONSTRAINT FK_Table20 FOREIGN KEY (COL_0) REFERENCES Table1 (COL_0) GO
3.数据库设计步骤 > Table2 Tablel 0..1 PK COL 2: VARCHAR (10) PK COL 0: VARCHAR (20) COL 3: VARCHAR (20) COL 1: NUMERIC(5. 0 CCL 4: DOM O 0.* FK COL 0: VARCHAR(20) ◆> PK Table100 ◆ PK Table210 ◆ FK Table200 外键可以为空
3. 数据库设计步骤 外键可以为空
3.数据库设计步骤 CREATE TABLE Tablel COL O VARCHAR (20) NOT NULL, COL I NUMERIC(5) NOT NULL CONSTRAINT PK Table10 PRIMARY KEY NONCLUSTERED(COL 0) GO CREATE TABLE Table2 COL 2 VARCHAR (10)NOT NULL COL 3 VARCHAR(20)NOT NULL, COL 4 VARCHAR ( 10) NOT NULL UNIQUE, COL O VARCHAR(20), CONSTRAINT PK Table21 PRIMARY KEY NONCLUSTERED(COL 2) Go ALTER TABLE Table2 ADD CONSTRAINT FK Table20 FOREIGN KEY(COL O REFERENCES Tablel(COL 0) GO
3. 数据库设计步骤 CREATE TABLE Table1 ( COL_0 VARCHAR ( 20 ) NOT NULL, COL_1 NUMERIC ( 5 ) NOT NULL, CONSTRAINT PK_Table10 PRIMARY KEY NONCLUSTERED (COL_0) ) GO CREATE TABLE Table2 ( COL_2 VARCHAR ( 10 ) NOT NULL, COL_3 VARCHAR ( 20 ) NOT NULL, COL_4 VARCHAR ( 10 ) NOT NULL UNIQUE, COL_0 VARCHAR ( 20 ), CONSTRAINT PK_Table21 PRIMARY KEY NONCLUSTERED (COL_2) ) GO ALTER TABLE Table2 ADD CONSTRAINT FK_Table20 FOREIGN KEY (COL_0) REFERENCES Table1 (COL_0) GO
3.数据库设计步骤 > K Table100 4(>压F出1:280 外键是主键的一部分
3. 数据库设计步骤 外键是主键的一部分
3.数据库设计步骤 CREATE TABLE Tablel COL O VARCHAR (20) NOT NULL, COL I NUMERIC(5) NOT NULL CONSTRAINT PK Table10 PRIMARY KEY NONCLUSTERED(COL 0) GO CREATE TABLE Table2 COL 2 VARCHAR (10)NOT NULL COL 3 VARCHAR(20)NOT NULL, COL 4 VARCHAR ( 10) NOT NULL UNIQUE, COL O VARCHAR (20)NOT NULL CONSTRAINT PK Table21 PRIMARY KEY NONCLUSTERED(COL 0 COL 2 Go ALTER TABLE Table2 ADD CONSTRAINT FK Table20 FOREIGN KEY(COL 0) REFERENCES Tablel(COL 0) GO
3. 数据库设计步骤 CREATE TABLE Table1 ( COL_0 VARCHAR ( 20 ) NOT NULL, COL_1 NUMERIC ( 5 ) NOT NULL, CONSTRAINT PK_Table10 PRIMARY KEY NONCLUSTERED (COL_0) ) GO CREATE TABLE Table2 ( COL_2 VARCHAR ( 10 ) NOT NULL, COL_3 VARCHAR ( 20 ) NOT NULL, COL_4 VARCHAR ( 10 ) NOT NULL UNIQUE, COL_0 VARCHAR ( 20 ) NOT NULL, CONSTRAINT PK_Table21 PRIMARY KEY NONCLUSTERED (COL_0, COL_2) ) GO ALTER TABLE Table2 ADD CONSTRAINT FK_Table20 FOREIGN KEY (COL_0) REFERENCES Table1 (COL_0) GO