您好,欢迎访问三七文档
软件开发技术基础顾刚计算机教学实验中心第4章数据库及应用程序开发讲课8学时实验4学时案例1:雅虎网站雅虎网站267,000,000条122,000,000条93,500,000条案例2:火车订票系统全国各个地区火车车次信息,可以想象数据量很大。假如西安火车站每天始发车次200列,每列火车15×120,信息记录36000条。又假如全国有100个像西安的城市,则系统每天要处理的数据量达到300万条。案例3:大学教学管理系统某大学的全校性选修课门数有180多门,选修学生人次达到1.5万/每学期。假定每位学生最多允许选3门,每门课最多允许300人选,全校现有学生3万多,每位学生都有自己专业的若干必修课。需要专门的管理平台去解决上面问题!计算机怎样去组织、存储和管理这样海量的数据信息?数据库概念回顾数据?数据处理?数据库?数据库管理系统?数据库系统?指描述客观事物的信息符号的总称,这些信息符号能输入到计算机中存储起来,又能被处理指对数据进行收集、整理、组织、存储、加工(增删改)、传输、检索的各个过程总称指对数据库进行管理(定义、增、删、改、查询等)的软件系统DBMS指长期存储在计算机内的有组织的可共享的数据集合由硬件、操作系统、数据库、数据库管理系统、应用程序、数据库管理员等部分组成数据库概念回顾实体?属性?关键字(码)?关系?实体三种联系?客观世界存在的任何事物称为实体指一个实体的所有特征称为属性笛卡尔积D1×D2×…×Dn的子集称为在N个域D1,D2,…,Dn上的一个关系,俗称二维表格为关系指唯一能够标识实体的一个或一组属性称为关键字或码一对一、一对多、多对多。分别举例?数据库概念回顾描述实体间联系的工具?三种数据模型?实体联系属性层次模型、网状模型、关系模型。分别举例?现实世界:事物的客观存在,由事物及其性质反映信息世界:是对现实世界的抽象,事物在信息世界中称为实体。实体是由属性来描述的。反映事物及其之间联系的模型称为(实体)概念模型。数据世界:信息的数据化。用记录和数据项分别描述信息世界中的实体及属性。实体模型数据化后数据模型数据库概念回顾现实世界中万物之间必然存在多种联系或者是实体内部的联系,或者是实体之间的联系实体之间各种各样的联系归纳起来有三种方式:一对一(1:1)一对多(1:n)多对多(m:n)注意指不同类实体之间的联系数据库概念回顾“一对一”联系是最常见、最简单的联系例如:实体集“本市房屋”中的实体“房屋”实体集“本市居民家庭”中的实体“家庭”一般来说,每个家庭只住一套房屋、一套房屋住一户家庭但要注意的是“一对一”联系不一定是“一一对应”联系,前者不排除如新造的房屋尚没分配或刚组建的家庭还未分配到房子等情况“一对一”联系“一对多”联系也是最常见的。例如实体学校和实体学生之间的联系。一个学校有许多学生,但一个学生只就读于一所学校。实体E11实体E12实体E13实体E14实体E15实体E21实体E22实体E23实体E24实体E25实体E26实体E27实体E28实体E29“一对多”联系“多对多”联系是一种较为复杂的联系。实体集E1中的实体可以和实体集E2中的任意多个实体间有联系,反之亦然。例如在学校中教师和学生之间的联系:一个教师给多个学生上课,而一个学生可以同时选修几个教师的课。“多对多”联系用E-R图(ENTITY-RELATIONSHIP)来描述实体、属性及实体之间的联系。实体联系属性概念模型的表示方法学生选修学号姓名性别年龄课程课程号课程名学分成绩mnE-R图举例1E-R图举例2供应商项目企业零件供应项目名负责人工期零件号零件名库存量企业名法人名地址电话产品名资产课程教师学生教学E-R图举例3姓名学号成绩姓名职称学科课程实体集与教师实体集多对多联系课程实体集与学生实体集多对多联系在数据库中,由于采用的数据模型不同,相应的DBMS也就完全不同,目前常用的三种数据模型是:层次模型、网状模型、关系模型。因此目前流行的三种主要类型数据库系统分别是层次、网状和关系型数据库管理系统。三种数据模型“一对多”、“一对一”联系可以直接用层次模型来描述,但“多对多”联系不能直接用层次模型来表示,必须通过一些数学变换把“多对多”联系拆成几个“一对多”联系后再用层次模型表示。虽然层次模型有一定局限性,但由于其简单、清晰,还是有许多数据库管理系统根据层次模型来设计,这样一来的DBMS称为层次型数据库管理系统。在现实世界中有大量实体间联系可以用层次模型来描述。层次模型在网状模型中各实体之间的联系用有向图表示。由于树型结构可以看成是有向图的特例,所以网状模型要比层次模型复杂,但它可以直接用于表示“多对多联系”。然而由于技术上的困难,一些已实现的网状数据库管理系统(如DBTG)中仍然只允许处理“一对多”联系。教师班级学生课程网状模型在手工处理(没有使用计算机以前)的实际工作中。人们经常使用表格进行业务管理。也就是说把实体之间的联系绘制成表格。例如旅馆管理,除了旅客登记表以外,旅馆本身最重要的资源:客房的有关数据也可以制成如下一张表格。关系模型实体集“旅客”和“房间”之间的联系,即住宿关系也可使用表格来表示。可以看出用表格能够表示“一对一”、“一对多”的实体联系。实际上用表格也可以表示“多对多”的实体间联系。关系模型--表格描述目前实际使用的数据库系统大多是关系数据库,下面重点讨论域(Domain):相同类型数据元素值的集合。比如自然数集合、小写字母集合笛卡尔积:设有一组域D1,D2,…,Dn,则笛卡尔乘积为D1×D2×…×Dn={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}元组(Tuple):笛卡尔乘积中每一个元素(d1,d2,…,dn)称为一个元组(n元组)关系数据库系统域D1=学生集合(Student)={张宁,李健,王鹏},域D2=计算机语言课程集合(Language)={C++,OP,JAVA},域D3=修课类别(Lesson)={必修课,选修课},笛卡尔积D1×D2×D3={(张宁,C++,必修课),(张宁,C++,选修课),(张宁,OP,必修课),(张宁,OP,选修课),(张宁,JAVA,必修课),(张宁,JAVA,选修课),(李健,C++,必修课),(李健,C++,选修课),(李健,OP,必修课),(李健,OP,选修课),(李健,JAVA,必修课),(李健,JAVA,选修课),(王鹏,C++,必修课),(王鹏,C++,选修课),(王鹏,OP,必修课),(王鹏,OP,选修课),(王鹏,JAVA,必修课),(王鹏,JAVA,选修课)}。笛卡尔积实例通常用关系来表示实体及其之间的联系。关系可以用二维表来表示。每一行为一个元组,每一列为一个域,每一列也可以称为一个属性,属性具有对应的名称,称为属性名。比如在D1×D2×D3中只选出与学生张宁有关的内容就构成一个关系R(D1,D2,D3)关系:D1×D2×…×Dn的子集称为域D1,D2,…,Dn上的一个关系,记作R(D1,D2,…,Dn),或简记为R。笛卡尔积子集关系模式-----指一个关系中的所有属性名。记为:〈关系名〉(属性名1,属性名2,……属性名N)例:SLL(Student,Language,Lesson)shop(店名,地址,法人名,经营者名,电话)fruit(水果名,价格,库存量,质量等级)book(书名,著者名,出版地,出版社,价格,页数,开本,ISBN,分类号,版本)student(姓名,学号,性别,宿舍,电话)电话号码簿(电话号码,姓名)注意上述关系模式中,哪些是关键字、哪些是外码?数据库概念回顾数据库概念回顾数据模型是概念模型(实体模型)的数据化,关系模型是三种数据模型之一,也是目前最为流行的数据模型关系模型=关系模式(数据结构)+数据操纵+完整性约束关系模式指一个关系中的所有属性名数据操纵=查询操作+更新操作查询操作:选择、投影、连接、并、交、差更新操作:增、删、改完整性约束=实体完整性+参照完整性+用户定义完整性实体完整性指关系中关键字不为空且唯一,见表4-1参照完整性指外码的删除,出现数据不完整性,见表4-2将图书馆大量图书数据和大量读者数据建立关系模型数据库,假设我们设计的一个关系模式如下表所示:图书馆如何建数据库读者单位证号书名价格出版社日期张三电气学院0732C##29.8人民教育2002-3-13张三电气学院0732ORACLE39.8电子工业2002-5-13张三电气学院0732ORACLE39.8电子工业2002-5-13李四电信学院0801JAVA31.9机械工业2003-1-5李四电信学院0801红楼梦18.5人民教育2003-1-8对于这样的关系表,如果具体分析可以发现如下问题:1、数据的冗余度大:重复数据太多,占用较多存储空间2、插入异常:新购图书,如果无读者借,就无法登记该书的信息3、删除异常:当读者还某书时,该书的信息也删除掉了;4、更新异常:当某读者单位变更时,需修改数据,如果改错,找不到读者注意:上表中的关键字是证号和书名两个属性组成实际上我们所建立关系的二维表一般具有如下特性:1、每一列中的属性值是同类型的数据,即来自同一个域;2、不同的列要给予不同的属性名,但可以出自同一个域;3、任意两个元组在各属性值上不能完全相同;4、每一个属性必须是不可再分的数据项;5、行、列次序是无关紧要的。但是一个关系的二维表仅具有这些特性是不够的。需要对关系再增加一些条件限制,使其避免出现数据冗余、插入异常、删除异常和修改异常等问题。分析图书馆的数据表通常称存在问题的关系为不规范关系,所以要将关系模式规范化。我们要优化关系模式,从而使关系模式越来越合理。在此先搞清楚范式的概念。范式(NormalForm)是满足某种条件的关系模式的集合。关系模式根据要求的不同,或者说规范化的程度的不同,可以进一步划分为一范式、二范式、三范式、Boyce-Codd范式、四范式和五范式,分别记为1NF、2NF、3NF、BCNF、4NF和5NF。当我们说“关系R是3NF”时,就表示为R∈3NF。各种范式之间存在以下包含关系:1NF2NF3NFBCNF4NF5NF数据库规范化理论数据依赖学号姓名学院院地址课程号课程名成绩970001张丽管理管院楼C001高等数学90970001张丽管理管院楼C002英语87970002王峰涛电信西一楼C001高等数学95970002王峰涛电信西一楼C002英语95970003李一凡能动动三楼C004法律70学号→姓名课程号→课程名(学号,课程号)→成绩还有吗?一个学号只对应一个学生,换句话说知道学号就知道姓名,反之不然。因此称姓名函数依赖于学号;或者说学号函数决定姓名。记作学号→姓名一个关系中属性值之间存在的互相依赖和互相制约的条件或因素,或者说一个关系中属性之间存在着相互联系,我们称之为数据依赖。属性之间依赖关系类似于数学中的函数。函数依赖定义设在关系R中,X和Y为R中的两个属性,如果每个X值只有一个Y值与之对应,则称属性Y函数依赖于属性X;或称属性X(函数)决定属性Y,记作X→Y。学号姓名性别年龄系别党员否0001张强男38计算机科学是0005王建设男48信息管理否0010赵红香女32材料科学否上表中学号决定其它5个属性函数依赖再定义设有关系模式R(A1,A2,A3,……AK),X和Y均为{A1,A2,A3,……AK}的子集,r是R的任意具体关系,u、v是r中的任意两个元组。u(X)、v(X)分别表示元组u、v在X上的属性值。u(Y)、v(Y)分别表示元组u、v在Y上的属性值。如果存在u(X)=v(X),则有u(Y)=v(Y),那么称X函数决定Y,或称Y函数依赖于X,记为XY。读者单位证号书名价格出版社借书日期张三电气学院0732C##29.8人民教育2002-3-13张三电气学院0732ORACLE39.8电子工业2002-5-13张三电气学院0732ORACLE39.8电子工业2002-5-13李四电信学院0801JAVA31.9机械工业2003-1-5李四电信学院0801红楼梦18.5人民教
本文标题:第5章数据库.
链接地址:https://www.777doc.com/doc-2110506 .html