2010 年 6 月课件制作人:王亚楠 1 模块 2 项目开发概论 教学课件
2010 年 6 月课件制作人:王亚楠 2 目录 目标 了解:数据库技术的基本概念与结构 理解:数据模型的分类与结构组成 掌握:关系数据库及 SQL 的基本理论 知识 掌握:数据库设计的方法与步骤 内容 2.1 数据库技术基础 2.2 数据模型 2.3 关系数据库 2.4 数据库设计
2010 年 6 月课件制作人:王亚楠 数据库技术基础 数据管理技术的发展 数据库技术的概念 数据库系统的结构
2010 年 6 月课件制作人:王亚楠 数据管理技术的发展 阶段 1 :人工管理阶段 阶段 2 :文件系统阶段 阶段 3 :数据库系统阶段 特点: 数据结构化 数据由数据库管理系统统一控 制 数据共享性好,冗余度小 数据独立性高 数据管理以记录或数据项为单 位
2010 年 6 月课件制作人:王亚楠 数据库技术的概念 数据( Data ) 数据库( Database,DB ) 数据库管理系统( Database Management System, DBMS ) 数据库应用系统( Database Application System ) 数据库系统( Database System, DBS ) ( ,张山,男, , 01 )是描 述一个学生的数据 长期存储在计算机内部的、有组织的、可共享的、 冗余度小且独立性高的数据集合。 系统软件 : Oracle 、 DB2 、 SQL Server 、 MySQL 、 Access 应用软件:学生管理系统、销售管理系统等
2010 年 6 月课件制作人:王亚楠 数据库技术的概念(续) DBS :
2010 年 6 月课件制作人:王亚楠 数据库系统的结构 数据库管理系统角度:模式结构 数据库最终用户角度 :体系结构 3 级模式 2 级映像
2010 年 6 月课件制作人:王亚楠 数据库系统的结构(续) 数据库管理系统角度:模式结构 数据库最终用户角度 :体系结构 常见的体系结构: 单用户结构 主从式结构 客户机 / 服务器结构 ( C/S ) 浏览器服务器结构( B/S ) 分布式结构
2010 年 6 月课件制作人:王亚楠 数据模型 数据模型:计算机对现实世界的模拟工具 概念模型 数据模型
2010 年 6 月课件制作人:王亚楠 概念模型 实体( Entity ):一个学生、一门课程 属性( Attribut ):学生的学号、姓名、性别等都是学生的属 性。 码( Key ):唯一标识实体的属性集。例如,学号属性唯一标 识学生实体,可以充当学生实体的码。 域( Domain ):属性的取值范围。例如,性别的域是(男, 女)。 实体型( Entity Type ):学生(学号,姓名,性别)是一个实 体型。 实体集( Entity Set ):全部学生是一个实体集。
2010 年 6 月课件制作人:王亚楠 概念模型(续) 联系( Relationship ): 实体内部的联系指各属性之间的联系 实体之间的联系是指两个实体或多个实体之间的联系: 常见的联系类型: 一对一联系( 1:1 ) 一对多联系( 1:m ) 多对多联系 ( m:n )
2010 年 6 月课件制作人:王亚楠 概念模型(续) E-R 图描述概念模型的 4 个步骤: ( 1 )确定实体型: ( 2 )确定实体型应包含的属性: ( 3 )确定实体型之间的联系: ( 4 )确定实体型的码: 实体 1 实体 2 属性 联系 m n
2010 年 6 月课件制作人:王亚楠 数据模型 3 个组成要素: 数据结构:数据、数据间联 系 数据操作 数据的约束条件 3 种类型: 层次模型 网状模型 关系模型
2010 年 6 月课件制作人:王亚楠 数据模型(续) 层次模型
2010 年 6 月课件制作人:王亚楠 数据模型(续) 网状模型
2010 年 6 月课件制作人:王亚楠 数据模型(续) 关系模型
2010 年 6 月课件制作人:王亚楠 关系数据库 关系数据结构 关系数据完整性 关系数据库语言 SQL 关系规范化
2010 年 6 月课件制作人:王亚楠 关系数据结构 ( 1 )关系( Relation ) ( 2 )元组( Tuple ) ( 3 )属性( Attribute ) ( 4 )域( Domain ) ( 5 )分量。 ( 6 )候选码( Candidate Key ) ( 7 )主码( Primary Key ) ( 8 )外码( Foreign Key ) 关系数据结构的表示方法: 关系模式 【例 2-2 】用关系模式表示班 级和学生 2 个关系。 班级(班号,班名,教室,班长) 学生(学号,姓名,性 别,出生日期,所属班 号 fk )
2010 年 6 月课件制作人:王亚楠 关系数据完整性 实体完整性:对主码进行限制 参照完整性:对外码进行限制 用户定义完整性 :对具体数据 进行限制 选修(学号,课程号,成绩) 中,(学号,课程号)两个属 性都不能取空值,而不仅整体 不能取空值 班级、学生关系,学生关系中 “ 所属班号 ” 只能取两类值:空 值;取班级关系中某个元组的 “ 班号 ” 属性值 学生关系中, “ 性别 ” 属性的取值范围限制为(男,女)
2010 年 6 月课件制作人:王亚楠 关系数据库语言 SQL SQL ( Structure Query Language ): “ 结构化查 询语言 ” SQL 功能对应的动词 DDL CREATE 、 ALTER 、 DROP DML SELECT 、 INSERT 、 UPDATE 、 DELETE DCL GRANT 、 REVOKE 结构:型 数据:值
2010 年 6 月课件制作人:王亚楠 关系规范化 提出问题:学生情况 学号姓名性别所属系号宿舍楼号课程号成绩 张山男 011#c 张山男 011#c 张山男 011#c 李容女 022#c 李容女 022#c 插入异常 删除异常 数据冗余 更新异常
2010 年 6 月课件制作人:王亚楠 关系规范化(续) 函数依赖: R ( X , Y ) ( 1 )函数依赖:记作 X→Y 。 ( 2 )完全函数依赖:记作 X→fY 。 ( 3 )部分函数依赖 :记作 X→pY 。 ( 4 )传递函数依赖 :记作 X→tY 。
2010 年 6 月课件制作人:王亚楠 关系规范化(续) 范式: ( 1 ) 1NF 。记作 R ∈ 1NF 。 ( 2 ) 2NF 。记作 R ∈ 2NF 。 ( 3 ) 3NF 。记作 R ∈ 3NF 。 【例 2-7 】将学生情况关系规范化为 3NF 。 1 )学生情况∈ 1NF 。 2 )学生情况关系不是 2NF ,分解得到: 学生情况 1 (学号,姓名,性别,所属系号,宿舍楼号)∈ 2NF 学生情况 2 (学号,课程号,成绩)∈ 2NF 3 )学生情况 1 不是 3NF ,分解得到: 学生情况 11 (学号,姓名,性别,所属系号) ∈ 3NF 学生情况 12 (所属系号,宿舍楼号) ∈ 3NF 学生情况 2 (学号,课程号,成绩) ∈ 3NF
2010 年 6 月课件制作人:王亚楠 数据库设计 数据库设计的步骤: 6 步 需求分析阶段 概念结构设计: E-R 图 逻辑结构设计:关系模式 数据库物理设计:物理结构 数据库实施:实现数据库结构 ( T-SQL ) 数据库运行与维护 一个实体型转换为一个关系模式; 一个 1:1 联系与任意一端对应的关 系模式合并; 一个 1:n 联系与 n 端对应的关系模式 合并, 1 端关系的主码作为 n 端关系 的外码; 一个 m:n 联系转换为一个独立的关 系模式, m 关系与 n 关系的主码的组 合作为新关系的主码; 多个实体间的多元联系转换为一个 独立的关系模式。
2010 年 6 月课件制作人:王亚楠 数据库设计(续) “ 学生管理系统 ” 的数据库设计 ( 1 )需求分析:略 ( 2 ) E-R 图设计:
2010 年 6 月课件制作人:王亚楠 数据库设计(续)
2010 年 6 月课件制作人:王亚楠 数据库设计(续) ( 3 )关系模式转换: 系(系号,系名称,地址,电话) 班级(班号,班名,教室,所属系号 fk ) 学生(学号,姓名,出生日期,性别,家庭地址,联系电话, 所属班号 fk ) 课程(课号,名称,类型,学时) 教师(编号,姓名,性别,职称,任职) 选修(学号 fk1 ,课程编号 fk2 ,成绩) 教授(班号 fk1 ,课号 fk2 ,教师编号 fk3 ,学期,地点)
2010 年 6 月课件制作人:王亚楠 数据库设计(续) ( 4 )物理结构设计:例,学生表 student 的结构 列名数据类型空值与否约束列名含义 st_idchar(10)NOT NULL 主键学号 st_namevarchar(10)NOT NULL 姓名 st_birthdatetimeNULL 出生日期 st_genderchar(2)NULL 检查: “ 男 ” 、 “ 女 ” 性别 st_addressvarchar(60)NULL 家庭地址 st_telvarchar(15)NULL 联系电话 st_clidchar(2)NULL 外键所属班号
2010 年 6 月课件制作人:王亚楠 29 小结 数据库基础: 3 个发展阶段、 5 个概念、 2 种模式 数据模型:概念模型、数据模型 关系数据库系统:关系结构、数据完整性、 SQL 、关 系规范化 数据库设计: 6 步