540 likes | 647 Views
数据库应用技术 SQL Server 2005. www.ytvc.com.cn. 第 1 章 数据库系统与数据库设计基础. 能力目标: 认识数据库系统的组成和 C/S 、 B/S 结构。 认识各种数据库管理系统、开发工具及其特点。 明确与数据库技术相关的职业技术岗位。 能够根据项目需求分析报告进行数据库的概念模型设计。 通过项目需求分析,培养与客户沟通的能力。 任务设计: 阅读管理信息系统的项目需求分析报告。 根据项目需求分析建立概念( E-R )数据模型。. 第 1 章 数据库系统与数据库设计基础. 知识要求: 数据管理技术的产生和发展。
E N D
数据库应用技术SQL Server 2005 www.ytvc.com.cn
第1章 数据库系统与数据库设计基础 能力目标: • 认识数据库系统的组成和C/S、B/S结构。 • 认识各种数据库管理系统、开发工具及其特点。 • 明确与数据库技术相关的职业技术岗位。 • 能够根据项目需求分析报告进行数据库的概念模型设计。 • 通过项目需求分析,培养与客户沟通的能力。 任务设计: • 阅读管理信息系统的项目需求分析报告。 • 根据项目需求分析建立概念(E-R)数据模型。
第1章 数据库系统与数据库设计基础 知识要求: • 数据管理技术的产生和发展。 • 数据库系统概述。 • 数据库三级模式结构的重要概念。 • DBMS的主要功能。 • 数据模型概述。 • 数据库概念设计。
D 文字、数字、图形、图像、声音等 数字、文字 数据库文件 1.1 数据管理技术的产生和发展 P I Word Excel PowerPoint FrontPage Photoshop C,VB.NET Access,VFP SQL Server 文档(.doc) 工作簿(.xls) 文稿(.ppt) 网页(.html) 图片(.bmp) 数字、文字 查询结果或报表 Processing Information Data
1.1.1 数据处理的基本概念 • 数据(Data)对客观事务及其活动的抽象符号表示 或存储在某一种媒体上可以鉴别的符号资料 • 学生的考试成绩85和56 • 信息(Information)消化理解了的数据,是对客观世界的认识,即知识 • 学生通过思考及格和不及格 • 数据处理(Data Processing)对数据进行加工的过程或将数据转换成信息的过程
1.1.1 数据处理的基本概念 main() { int chj; scanf(“%d”,&chj); if(chj>=60) printf(”及格”); else printf(“不及格”); } 输入数据: 83/56 输出信息: 及格 /不及格 及格和 不及格 是否数据?
人工 文件 1.1.2 数据管理技术的发展 main() { FILE *fp; int i; for(i=0;i<10;i++) {scanf(“%s%s%f”,&st[i].num, &st[i]. course, &st[i]. grade);} if(fp=fopen(“sdata.dat”,”w”))==NULL) printf(“Can not open file sdata.dat”); else {for(i=0;i<10;i++) fwrite(&st[i],sizeof(struct tudent),1,fp); close(fp);} } #include “stdio.h” struct student { char num[7]; char course[20]; float grade; }; struct student t[10]; sdata.dat 0101001 C++语言 78 0101001 操作系统 62 0102005 电子技术 73 ……
文件 数据库 1.1.2 数据管理技术的发展 SELECT * FROM SC WHERE (Grade>=90); 表:SC(选课) SID(学号)CID(课程号)Grade(成绩) ------------------ ----------- 2005216001 16020010 96.0 2005216001 16020011 80.0 2005216002 16020010 67.0 2005216002 16020012 78.0 2005216003 16020013 87.0 2005216003 16020014 85.0 2005216111 16020014 89.0 2005216111 16020015 90.0 2006216578 16020010 58.0 SELECT * FROM SC WHERE (Grade <60); 查询结果: SID CID Grade --------- -------- ----- 2005216001 16020010 96.0 2005216111 16020015 90.0 查询结果: SID CID Grade ---------- -------- ------ 2006216578 16020010 58.0
1.1.2 数据管理技术的发展 • 人工管理阶段 (50年代中期) • 数据不能长期保存 • 应用程序本身管理数据 • 数据不共享 • 数据不具有独立性 • 文件系统阶段 (50年代后期到60年代中期) • 数据可以长期保存 • 由文件系统管理数据 • 数据冗余大,共享性差 • 数据独立性差
课程 选课 学生 成绩 1.1.2 数据管理技术的发展 • 数据库系统阶段 • 数据结构化:特定的数据模型表示事务以及事务之间的联系 Entity Relationship Entity Student(SID,Sname,Sex,Birthday,Specialty) Course(CID, Cname,Credit) SC(SID, CID,Grade)
1.1.2 数据管理技术的发展 • 数据库系统的特点 • 共享性高:减少数据冗余,减少更新异常 • 数据独立性强:程序和数据相对独立 • 数据粒度小:粒度单位是记录中的数据项,粒度越小处理速度就越快、越方便 • 独立的数据操作界面:通过命令或界面(菜单、工具栏、对话框)对数据库访问和处理。如:VFP,ACCESS,SQL SERVER • 统一管理和控制:数据定义、操纵和控制由数据库管理系统(DBMS)统一管理和控制。
数据库系统的特点 • 由DBMS统一管理:数据库定义,数据库操纵,数据控制 • A.安全性控制 • 系统安全:用户标识和鉴定、分级授权(读、写、修改等)、数据加密
数据库系统的特点 • B.完整性控制:保证数据的正确性和一致性。 • 域完整性控制: 例如: Create table学生( 学号 char (7) primary key; 姓名 char (6) not null; 性别 char (2) check(性别=‘男’or性别 =‘女’) ) 关联完整性 : 例如: Create table选修( 学号 char (7); 课程号 char (4) ; 成绩 int check (成绩>=0 and成绩< =100); primary key (学号, 课程号); foreign key (学号) references学生 (学号) )
数据库系统的特点 C.并发控制(共享带来的问题) 例如:订机票 甲地 航班 机票数 乙地 订3张 烟台-北京 5 订4张 控制方法: 独占:不让其他用户使用 加锁:不让其他用户写
数据库系统的特点 • D.数据库恢复 • 事务管理:不干一半的事 • 恢复方法: ①倒库(备份); ②建立日志文件; ③利用①②恢复DB。
Application System Development Tools DBMS Operating System 1.2 数据库系统概述 USER 教务管理、图书管理、进销存管理 VB.NET,C#,Java SQL Server,Oracle DataBase WINDOWS
1.2.1 数据库系统(DBS)构成 • 硬件系统(Hard Ware,HW) 数据库(DataBase,DB) • 操作系统(Operating System,OS) 数据库管理系统(DataBase Management System,DBMS) • 数据库应用系统的开发工具及相关接口软件(Development Tools,TOOLS) • 数据库应用系统( DataBase Application System,APP) 用户(USER )
1.2.1 数据库系统(DBS)构成 END USER DB Administrator 图书管理,教务管理,ERP等 API(Transact SQL,ODBC,OLE DB,ADO) VB.NET ,C# Java Power Builder Delphi SQL Server DB2, Informix Sybase,Oracle Windows 2003/NT,UNIX Request APS DBMS OS HW APS OS HW Result DB Client/Server结构 Programmer DB Analyst
1.2.1 数据库系统(DBS)构成 Programmer DB Administrator End User ASP.NET JSP .NET ,J2EE SQL Server 2005 DB2 Informix Sybase Oracle Windows 2003/NT,UNIX 电子政务,电子商务等网站 Request APS DBMS OS HW IE OS HW DB Result Browser/Server模式 DB Analyst
1.2.2数据库用户(USER) • 数据库管理员:Data Base Administrator,DBA • 数据库分析师:Data Base Designer/Analyst,DBD • 应用程序员:Application Programmer • 终端用户:End User
1.2.3 数据管理系统(DBMS)的功能 • 数据定义(Data Description Language,DDL) • 对数据模式的描述 • 数据操纵:(Data manipulation Language,DML) • 对数据进行追加、插入、删除、检索等操纵 • 数据库运行控制:(Data Control Language,DCL) • A.安全性控制B.完整性控制C.并发控制D.数据库恢复 • 数据字典(Data Dictionary,DD) • 有关数据的数据描述
1.2.4数据库(DB)的三级模式结构 • 模式 • 整体逻辑结构(模式/概念模式/逻辑模式/全局模式) • 数据库中全体数据的逻辑结构和特征的描述,是现实世界某应用环境(企业或单位)的所有信息内容集合的表示,是所有用户的公共数据视图 • 三级模式结构的中间层,不涉及物理存储细节和具体应用程序 • DBMS提供的模式描述语言(模式DDL)来定义模式
1.2.4数据库(DB)的三级模式结构 • 外模式 • 局部逻辑结构(外模式/子模式/应用模式/用户模式/局部模式) • 数据库用户看到并允许使用的局部数据的逻辑结构和特征的描述,是数据库用户的视图 • 外模式是三级结构的最外层,是保护数据库安全性的一个有力措施 • DBMS提供子模式描述语言(子模式DDL)来定义子模式
1.2.4数据库(DB)的三级模式结构 • 内模式 • 物理结构(内模式、存储模式、物理模式) • 数据的物理结构和存储方式的描述 • DBMS提供内模式描述语言(内模式DDL)来定义内模式
1.2.4数据库(DB)的三级模式结构 • 逻辑独立性: • 当数据库的整体逻辑结构发生变化时,通过调整外模式和模式之间的映像,使得外模式中的局部数据及其结构(定义)不变,程序不用修改。 • 物理独立性 • 当数据库的存储结构发生变化时,通过调整模式和内模式之间的映像,使得整体模式不变,当然外模式及应用程序不用改变。 • 由DBMS描述和支持
1.2.4数据库(DB)的三级模式结构 二级存储映象 三级模式 SQL SERVER 数据库对象Transact-SQL DDL 外模式视图(VIEW) CREATE VIEW 模式 基本表(TABLE) CREATE TABLE 内模式数据库(DATABASE)CREATE DATABASE 逻辑独立性 物理独立性
1.3数据模型 • 现实世界:客观存在的事务及联系 • 概念模型:对现实世界的认识和抽象描述 • 数据模型:按计算机系统的观点对数据建模,用于DBMS的实现 选课 课程 学生 成绩 Student(SID,Sname,Sex,Birthday,Specialty) Course(CID, Cname,Credit) SC(SID, CID,Grade)
1.3.1组成要素 • 数据结构 • 用于描述系统的静态特征。(DDL) • 数据操作 • 用于描述系统的动态特性。(DML) • 数据完整性约束 • 一组完整性规则的集合。(DDL,DCL)
1.3.2概念模型 是客观世界到概念(信息)世界的认识和抽象,是用户与数据库设计人员之间进行交流的语言,常用表示方法是E-R图。 实体(Entity): • 实体 • 客观存在并且可以相互区别的事务和活动的抽象 一个学生 • 实体集 • 同一类实体的集合 一个班级的学生 • 实体型 • 对同类实体的共有特征的抽象定义 学号,姓名,性别 • 实体值 • 符合实体型定义的每个具体实体 2005216001001,赵成刚,男
1.3.2概念模型 联系(Relationship) • 联系 • 实体之间的相互关系 学生选课 • 联系集 • 同类联系的集合 每个学生选各种课 • 联系型 • 对同类联系共有特征的抽象定义 学号,课程号,成绩
1.3.2概念模型 属性(Attribute) • 属性 • 描述实体和联系的特性 学号,姓名,性别 • 属性值 • 属性的具体取值 2005216001001,赵成刚,男 • 主码((Primary Key) • 能够惟一标识实体集中每个实体的属性 或属性组合实体之间的相互关系 学号学号,课程号 • 外码(Foreign Key) • 不是本实体的主码,是另一实体的主码, 用于实现联系。 选课联系中的学号和课程号
1.3.2概念模型 • 联系分类 实体集A中每个实体与实体集B中的多少个实体存在联系或 反之。 • 一对一联系(1:1)例如:公司和总经理,学校和校长 • 一对多联系(1:n)例如:班级和学生,家庭和成员,学生与班长 • 多对多联系(m:n)例如:学生和课程,工人和零件,读者和图书
1.3.2概念模型 • E-R模型 • 基本构件 • 实体:矩形 • 联系:菱形 • 属性:椭圆形 • 相连关系:连接线
1.3.2概念模型 • E-R模型举例 • 职工实体集内部有领导和被领导的联系,即某职工为部门领导,领导若干职工,而一名职工仅被另外一名职工(领导)直接领导。 职工 1 n 领导 职工实体内1:n的E-R图
读者编号 姓名 类型编号 已借数量 读者 读者编号 n 借阅 图书编号 m 图书 图书编号 书名 作者 出版社 出版日期 定价 还期 借期 1.3.2概念模型
1.3.4 数据模型的种类 • 层次模型:链接,独立性差 • 网状模型:链接,独立性差 • 关系模型:有数学基础,规范化,概念单一 例如:图书管理系统的数据模型。 Reader(RID,Rname,TypeID,Lendnum) PK:RID Book (BID,Bname,Author, PubComp, PubDate,Price) PK:BID Borrow (RID, BID,LendDate, ReturnDate) PK:RID, BID,LendDate FK:RID和BID
1.4 数据库设计基础 数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
1.4 数据库设计基础 数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
1.4.1 数据库设计方法 由于信息结构复杂,应用环境多样,在相当长的一段时期内,数据库设计主要采用手工试凑法,缺乏科学理论依据和工程方法的支持,依赖于设计人员的经验和水平,从而难以保证工程的质量,增加了系统维护的代价。。 规范法设计从本质上看仍然属于手工设计方法,其基本思想是过程迭代和逐步求精。 目前常用的实用化和产品化的数据库设计工具软件有Oracle公司推出的Design 2000和,ybase 公司的PowerDesigner,这些工具软件能自动或辅助设计人员完成数据库设计过程中的很多任务,但使用起来还都属于规范法设计方法。 规范方法设计中著名的有新奥尔良(New Orleans)方法,它将数据库设计分为四个阶段:需求分析(分析用户需求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。其后, S.B.Yao等将数据库设计分为5个步骤。I.R.Palmer主张将数据库设计当成一步步的过程并采用一些辅助手段实现每一过程。 基于E-R模型的数据库设计方法、基于3NF(第三范式)的设计方法和基于抽象语法规范的设计方法,都是在数据库设有一定的难度和复杂度 。
1.4.2 数据库的设计步骤 按照规范法设计的方法,考虑数据库及其应用系统的开发全过程,将数据库设计分为以下6个阶段,如下图所示。
1.4.2 数据库的设计步骤 1 需求分析阶段 进行数据库设计首先必须了解与分析用户需求(包括数据与处理)。需求分析是整个设计过程的基础,也是最困难、最费时间的一步。需求分析首先要收集资料,并对资料进行分析整理,画出数据流程图(Data Flow Diagram ,DFD),然后建立数据字典(Data Dictionary,DD),并把数据字典图集和数据字典的内容返回客户,进行用户确认,最后形成文档资料。 需求分析是设计数据库的起点,需求分析的结果是否准确反映了客户的实际要求, 将直接影响到后面各个阶段的设计,并影响设计结果是否合理和实用。 2 概念设计阶段 根据需求分析的结果,形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。数据库的概念设计的基本方法将在下节重点介绍。 3 逻辑设计阶段 将概念设计E-R图转换成具体DBMS产品支持的数据模型,如关系模型(基本表),形成数据库的模式,并对数据进行优化处理。然后根据用户处理的要求,安全性的考虑,在基本表(TABLE)的基础上再建立必要的视图(VIEW)形成数据库的外模式。
1.4.2 数据库的设计步骤 4 物理设计阶段 对逻辑设计的关系模型,根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库(DATABASE)内模式。 5 数据库实施阶段 运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。 6 数据库运行和维护阶段 数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。 数据库经常性的维护工作主要由数据库管理员来完成,包括数据库的转储和恢复,数据库的安全性、完整性控制,数据库性能监视、分析和改造,以及数据库的重构。
1.5 数据库的概念设计 概念设计的目标是将需求分析得到的用户需求抽象为数据库的概念结构,即概念模式。描述概念模式的是E-R图。
1.5.1 数据库概念设计方法 概念设计的的一般步骤 1 初始化工程 这个阶段的任务是从目的描述和范围描述开始,确定建模目标,开发建模计划,组织建模队伍,收集源材料,制定约束和规范。其中收集源材料是这阶段的重点。通过调查和观察结果,由业务流程、原有系统的输入输出、各种报表、收集的原始数据形成了基本数据资料表。 2 定义实体 实体集合的成员都有一个共同的特征和属性集,可以从收集的源材料—基本数据资料表中直接或间接标识出大部分实体。根据源材料名字表中表示物的术语以及具有“代码”结尾的术语,如客户代码、代理商代码、产品代码等将其名词部分代表的实体标识出来,从而初步找出潜在的实体,形成初步实体表。
1.5 数据库的概念设计 3 定义联系 根据实际的业务需求、规则和实际情况确定出连接关系、关系名和说明,确定关系类型,是标识关系、非标识关系(强制的或可选的)还是非确定关系、分类关系。如果子实体的每个实例都需要通过和父实体的关系来标识,则为标识关系,否则为非标识关系。非标识关系中,如果每个子实体的实例都与而且只与一个父实体关联,则为强制的,否则为非强制的。如果父实体与子实体代表的是同一现实对象,那么它们为分类关系。 4 定义码 为实体标识候选码属性,以便唯一识别每个实体,再从候选码中确定主码。为了确定主码和关系的有效性,通过非空规则和非多值规则来保证,即一个实体的一个属性不能是空值,也不能在同一个时刻有一个以上的值。
1.5 数据库的概念设计 5 定义属性 从源数据表中抽取说明性的名词开发出属性表,确定属性的所有者。定义非主码属性,检查属性的非空及非多值规则。此外,还要检查完全依赖函数规则和非传递依赖规则,保证一个非主码属性必须依赖于整个主码主码且仅仅是依赖于主码。以此得到了至少符合关系理论第三范式。 6 定义其他对象和规则 定义属性的数据类型、长度、精度、非空、缺省值、约束规则等。定义触发器、存储过程、视图、角色、同义词、序列等对象信息。
1.5 数据库的概念设计 设计E-R图的过程 1 设计局部E-R图 局部E―R模型设计是从需求分析数据流图和需求文档出发确定实体和属性,并根据数据流图中表示的对数据的处理、确定实体之间的联系。 2 综合成初步E-R图 局部E-R图设计完成之后,将所有的局部E-R图综合成全局概念结构。它不仅要支持所有的局部E-R模式,而且必须合理地表示一个完善、一致的数据概念结构。一般可以使同一个实体只出现一次,进行两两合并,当然还要消除合并带来的一些属性、命名和结构的冲突,便可产生总体E-R图。 3 优化成基本E-R图 初步E-R图是在对现实世界进行调查研究之后综合出来的全局和整体概念模型,但并不一定是最优的。需要经过仔细分析找出潜在的数据冗余,再根据应用需求确定是否消除冗余的属性或者冗余的联系。 以上仅仅举了商品进销存管理系统概念设计中一个非常简单的例子,目的是使读者对概念设计有一个初步的了解。实际上的概念设计是非常复杂的,只能在工作中逐步学习、积累经验。
1.5.2 数据库概念设计案例 案例1:学校教务管理系统概念设计。 根据系统需求分析得到学生实体,属性有学号(主码)、姓名、性别、出生日期和专业等。课程实体,属性有课程号(主码)、课程名和学分等。学生与课程实体之间通过选课建立联系,并派生出新的属性成绩。假定一门课程有若干名学生选修,而一名学生可以选修多门课程,课程和学生之间具有多对多的联系。学生选修课程局部E-R图如右图 示。
1.5.2 数据库概念设计案例 根据系统需求分析还得到教师实体,属性有职工号(主码)、姓名、性别、出生日期和职称等,与课程实体之间通过授课建立联系,并派生出新的属性评价。假定一门课程可以有若干名教师讲授,每一名教师可以讲授多门课程,教师和课程之间具有多对多的联系。教师授课局部E-R图,如下图所示。