逻辑结构设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
逻辑结构设计
• 考虑有参与限制( Participation Constraints )的 问题
– Must every department have a manager? • If yes, this is a participation constraint
– All Departments entities must participate in the Manages relationship set (total participation).
name ssn
cost
pname
age
Employees
Policy
School of Management Tianjin University
Dependents
SLIDE 16
逻辑结构设计 • ISA Hierarchies to Tables
CREATE TABLE employees ( ssn CHAR(11), name CHAR(20), lot INTEGER, PRIMARY KEY (ssn))
逻辑结构设计
6.4 逻辑结构设计
1. 逻辑结构设计的任务: 数据库逻辑设计的任务是将概念结构
转换成特定DBMS所支持的数据模型的过程 -“Map ER Diagram to Relational Tables” 2. 设计步骤: 1) 初始关系模式设计 2) 关系模式规范化 3) 模式的评价与改进
School of Management Tianjin University
School of Management Tianjin University
SLIDE 7
逻辑结构设计
Relationship Sets to Tables
name ssn
since
Employees
Works_In
dname
did
budget
Departments
CREATE TABLE Works_In( ssn CHAR(11), did INTEGER, since DATE, PRIMARY KEY (ssn, did), FOREIGN KEY (ssn) REFERENCES Employees, FOREIGN KEY (did) REFERENCES
场。
School of Management Tianjin University
SLIDE 19
逻辑结构设计
–一个leg instance是一个flight leg的实例,怎样 才算一个实例?必须指定事件发生的真实时间和真实 的地点 (departure_airport_code,dep_time,arrival_air port_code,arr_time)。还要包括每个航程(leg instance)可提供的座位数量和对应的飞机 (airplane_id)。
⒊ 按照数据依赖的理论对关系模式逐一进行分析, 考查是否存在部分函数依赖、传递函数依赖、 多值依赖等,确定各关系模式分别属于第几范 式。
⒋ 按照需求分析阶段得到的各种应用对数据处理 的要求,分析对于这样的应用环境这些模式是 否合适,确定是否要对它们进行合并或分解。
例如,如果经常要查询某个班级的班主任姓 名,则将管理联系与教师关系合并更好些。
School of Management Tianjin University
SLIDE 13
逻辑结构设计
5. 三个或三个以上实体间的一个多元联系转换 为一个关系模式。
关系的属性:与该多元联系相连的各实体的码以及联 系本身的属性
Departments)
School of Management Tianjin University
SLIDE 8
逻辑结构设计
⒊ 一个1:n联系可以转换为一个独立的关系 模式,也可以与n端对应的关系模式合并。
School of Management Tianjin University
SLIDE 9
–Schema defines column heads of the table. –Instance contains the data rows (called tuples or records) of the table. –an attribute or a column
School of Management Tianjin University
DELETE CASCADE)
name
ssn
lot
Employees
hours_worked ISA contractid
Hourly_Emps
Contract_Emps
School of Manage百度文库ent Tianjin University
SLIDE 17
逻辑结构设计
(6)注意not null 的使用 (7)弱实体的转换 (8)ISA的转换
SLIDE 20
逻辑结构设计
Airport_code
AIRPORT
DEP_AIRPOTT
Scheduled_dep_time Scheduled_arr_time
Leg_no FLIGHT_LEG
ARR_AIRPORT
INSTANCE_OF
Date
No_avail_seats
LEGS
FLGHT
Number
–考虑一个航线(flight)会包括若干个segments
(飞行段),我们叫做flight legs,例如
flightnoCO1223是从纽约到洛杉机的航班,其中包含
2个fight legs:leg1 从纽约到休斯敦;leg2 从休
斯敦到洛杉机。并且每一个fight leg都有起飞和着
地的时间安排(scheduled_time),及其相应的指定机
CREATE TABLE hourly_emps (
hourly_wages INTEGER,
hourly_wages
hours_worked INTEGER,
ssn CHAR(11),
PRIMARY KEY (ssn)
FOREIGN KEY (ssn) REFERNECES employees ON
name ssn
Employees
cost Policy
pname
age
Dependents
School of Management Tianjin University
SLIDE 15
逻辑结构设计
• CREATE TABLE Dependent_Policy ( pname CHAR(20), age INTEGER, cost REAL, ssn CHAR(11) NOT NULL, PRIMARY KEY (pname, ssn), FOREIGN KEY (ssn) REFERENCES Employees ON DELETE CASCADE)
School of Management Tianjin University
SLIDE 3
逻辑结构设计
• 转换原则 1. 一个实体集转换为一个关系模式。
– 关系的属性:实体集的属性 – 关系的码:实体集的码
例,学生实体可以转换为如下关系模式: 学生(学号,姓名,出生日期,所在系,年级,
平均成绩) 性别、宿舍、班级、档案材料、教师、课程、 教室、教科书都分别转换为一个关系模式。
name
ssn
lot
Employees
since Manages
dname
did
budget
Departments
School of Management Tianjin University
SLIDE 10
逻辑结构设计
CREATE TABLE Department( did INTEGER; dname CHAR(20), budget REAL, ssn CHAR(11) NOT NULL, // must have one! since DATE, PRIMARY KEY (did), FOREIGN KEY (ssn) REFERENCES Employees)
SLIDE 5
逻辑结构设计
Entity Sets to Tables(举例)
key attribute attributes
name
ssn
sal
Employees
CREATE TABLE Employees (ssn CHAR(11), name CHAR(20), sal FLOAT, PRIMARY KEY (ssn))
School of Management Tianjin University
SLIDE 4
逻辑结构设计
sid name
login
age gpa
53666 Jones jones@cs
18 3.4
53688 Smith smith@eecs 18 3.2
53650 Smith smith@math 19 3.8
School of Management Tianjin University
SLIDE 18
逻辑结构设计
• 举例
–要求设计一个关于机场航班信息的数据库,保存机场 唯一代码,机场名称,以及机场坐落的城市和洲 (city,state)
–每一个航线(flight)有唯一代码,还包括航线计划 (scheduled)起飞的日子,例如周一到周六,code就 是X7
name
ssn
lot
Employees
since Manages
dname
did
budget
Departments
School of Management Tianjin University
SLIDE 11
逻辑结构设计
⒋ 一个1:1联系可以转换为一个独立的关系 模式,也可以与任意一端对应的关系模式 合并。
关系的码:各实体码的组合
School of Management Tianjin University
SLIDE 14
逻辑结构设计
• Weak Entity Sets to Table(弱实体关系)
–弱实体没有自己的码,必须依靠有依赖关系的另一方 –必须存在于1:m的关系中 –全部参与(total participation)
School of Management Tianjin University
SLIDE 6
逻辑结构设计
⒉ 一个m:n联系转换为一个关系模式。 –关系的属性:与该联系相连的各实体的 码以及联系本身的属性 –关系的码:各实体码的组合 例,“选修”联系是一个m:n联系,可以 将它转换为如下关系模式,其中学号与课 程号为关系的组合码: 选修(学号,课程号,成绩)
AIRPLANE
LEG_INSTANCE
To be continued…
School of Management Tianjin University
Airline
Weekdays
SLIDE 21
逻辑结构设计
2) 数据模型的优化
• 数据库逻辑设计的结果不是唯一的。 • 得到初步数据模型后,还应该适当地修改、
调整数据模型的结构,以进一步提高数据 库应用系统的性能,这就是数据模型的优 化。 • 关系数据模型的优化通常以规范化理论为 指导。
School of Management Tianjin University
SLIDE 22
逻辑结构设计
⒈ 确定数据依赖
⒉ 对于各个关系模式之间的数据依赖进行极小化 处理,消除冗余的联系。
SLIDE 1
逻辑结构设计
School of Management Tianjin University
SLIDE 2
逻辑结构设计
1) 初始关系模式设计:E-R图向关系模型 的转换
• 转换内容 – E-R图由实体、实体的属性和实体之间的联 系三个要素组成 – 关系模型的逻辑结构是一组关系模式的集 合 – 将E-R图转换为关系模型:将实体、实体的 属性和实体之间的联系转化为关系模式。
School of Management Tianjin University
SLIDE 12
逻辑结构设计
注意:
从理论上讲,1:1联系可以与任意一端对应的关 系模式合并。
但在一些情况下,与不同的关系模式合并效率 会大不一样。因此究竟应该与哪端的关系模式 合并需要依应用的具体情况而定。
由于连接操作是最费时的操作,所以一般应以 尽量减少连接操作为目标。
–旅客可以预定每个航程的座位,需要保存他们的姓名, 电话和预定的座位数目
–另外需要保存飞机和飞机型号的信息;对于型号(比 如,DC-10)需要保留名称,制造公司,最多的座位 数目信息。每个机场允许接受的飞机型号要存放到数 据库中;对于每个飞机来说需要保存它们的id,座位 数量,还有对应的型号。
School of Management Tianjin University