1本课程主要讲述:数据库基本理论Access数据库操作SQL数据库查询语句*VBA语言及模块设计第一章数据库基础知识讲述内容:1、数据管理发展史2、数据库基本概念*3、数据库四级结构模型4、概念模型:E-R模型*5、逻辑模型:关系模式*6、关系运算*7、数据规范化:1NF,2NF,3NF*一、数据管理发展史1、人工管理阶段计算机发展初期,主要用于科学计算,数据不独立,完全依赖于程序,不能共享。2、文件管理阶段数据以文件形式管理,数据无结构化,共享性差。23、数据库管理阶段数据结构化(数据库形式),出现多种数据库管理系统,共享性好。二、数据库基本概念1、数据库(DB):计算机处理,结构化,数据集合。2、数据库管理系统(DBMS):数据库管理系统软件,提供数据库操作平台。对数据库可以建立,添加记录,修改记录,删除、查询、排序、连接等。常见系统VFP、ACCESS、SQLSERVER等。3、数据库应用系统(DBAS):利用数据库开发管理应用软件。4、数据库系统(DBS):和数据库有关的所有系统总和,包括计算中硬件系统、软件系统、数据库、管理者、操作者、用户。5、信息三个世界划分:客观世界信息世计算机世界研究实体对象,特性结构化,形成不同的计算机存储结构实体之间联系。数据模型,关系型、面向计算机E-R模型网状、层次型。面向对象(概念模型)(逻辑模型)(物理模型)常用概念:实体、实体集、属性、标识符---〉数据库、表、字段、记录、关键字。6.联系在现实世界中,事物内部以及事物之间是有联系的,这些联系同样也要抽象和反映到信息世界中来,两个实体型之间的联系有如下三种类型:3(1)一对一联系(1:1)实体集A中的一个实体至多与实体集B中的一个实体相对应,反之亦然,则称实体集A与实体集B为一对一的联系。记作1:1。如:班级与班长,观众与座位,病人与床位。(2)一对多联系(1:n)实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体至多与实体集A中的一个实体相对应。记作1:n。如:班级与学生、公司与职员、省与市。(3)多对多(m:n)实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体与实体集A中的多个实体相对应。记作(m:n)。如:教师与学生,学生与课程,工厂与产品。实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。可以用图形来表示两个实体型之间的这三类联系,如图书1.7所示。ABABAB(a)(b)(c)不同实体集实体之间的联系4三、数据库模型及DBMS功能1、现实世界数据---------〉抽象----------〉计算机管理数据概念模型:用户需求观点,ER图逻辑模型:开发者角度,计算机实现观点,逻辑结构(层次、网状、关系)外部模型:用户使用观点,根据需求形成模型。内部模型:计算机物理结构2、数据库管理系统主要功能。(P14解释)3、关系模型中常用术语:关系模型,元组,属性,域,候选键,主键,外键,完整性规则,参照完整性。四、概念模型:E-R模型“实体-联系方法”的简称E-R模型。E-R图基本成分包含实体型、属性和联系。实体型:用矩形框表示,框内标注实体名称。属性:用椭圆形框表示,框内标注属性名称。联系:指实体之间的联系,有一对一(1:1),一对多(1:n)或多对多(m:n)三种联系类型。5(a)两个实体之间的联系学生选修成绩课程系主任领导系学生属于系11n1系主任n(c)实体集内部的联系m职工领导1n供应商供应数量零件项目mnn(b)多个实体之间的联系6这样,得到学籍管理局部应用的分E-R图例如:学生,宿舍,班级,教室,班主任,档案材料课程名学生学号姓名性别年龄系别课程课程号学分n选修成绩m7五、逻辑模型:关系模式1、关系模式表示:关系名称(属性1,属性2,。。。)下划线代表主键如:学生(学号,姓名,性别,政治面貌)2、E-R模型转化关系模式E-R模型中,1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如班级--管理—教师联系为1:1,我们可以将其转换为一个独立的关系模式:班级(班级号,学生人数)教师(职工号,姓名,性别,职称,是否优秀班主任)管理(职工号,班级号)或管理(职工号,班级号)管理”联系也可以与班级或教师关系模式合并。班级(班级号,学生人数,职工号)教师(职工号,姓名,性别,职称,是否优秀班主任)8或班级(班级号,学生人数)教师(职工号,姓名,性别,职称,班级号,是否为优秀班主任)E-R模型中,1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。例如:“学生---组成---班级”的联系为1:n联系。学生(学号,姓名,出生日期)班级(班级号,学生人数,班主任)组成(学号,班级号)另一种方法是将其学生关系模式(n端实体)合并,学生关系模式为:学生(学号,姓名,出生日期,班级号)班级(班级号,学生人数,班主任)E-R模型中,联系是一个m:n联系,将联系独立出来。如“学生—选课—课程”关系学生(学号,姓名,性别,年龄,所在系)课程(课程号,课程名,学分)选课(学号,课程号,成绩)9如:P22-25旅客-----乘机座位关系1:1旅客----航班关系1:n顾客-----每种商品关系m:n教师(教师号,姓名)学生(学号,姓名,性别)课程(课程号,课程名,学时,教师号)选课表(学号,课程号,成绩)10六、关系运算一、关系运算并、交、笛卡尔积;投影、选择、连接∪(并),-(差),∩(交),X(笛卡尔积),σ(选择),∏(投影),∞(连接);(大于)≥(大于等于)(小于)≤(小于等于)=(等于)≠(不等);逻辑运算符:∧(与),∨(或),┐(非)1、并运算:关系R和关系S的并,是R和S的所有元组合并,删去重复元组,组成一个新关系如:R={(李力,男),(王红,女)}S={(王红,女),(刘伟,男)}R∪S={(李力,男),(王红,女),(刘伟,男)}*对于关系数据库,记录的插入和添加可通过并运算实现。2.差关系R与关系S的差,由属于R而不属于S的所有元组组成,即R中删去与S中相同的元组,组成一个新关系。如:R={(李力,男),(王红,女)}S={(王红,女),(刘伟,男)}R-S={(李力,男)}*通过差运算,可实现关系数据库记录的删除。113.交关系R与关系S的交,由既属于R又属于S的元组组成,即R与S中相同的元组,组成一个新关系。如:R={(李力,男),(王红,女)}S={(王红,女),(刘伟,男)}R∩S={(王红,女)}如果两个关系没有相同的元组,那么它们的交为空。4、笛卡尔积(集合中元素的组合),如D1,D2,…,Dn,它们笛卡尔积为D1×D2×……×Dn={(d1,d2,…,dn)。。。|di∈Di,i=1,2,…,n}。笛卡尔积也是一个集合。例如:D1={A,B,C}D2={1,2,3}D1,D2两个域的笛卡尔积为D1XD2={(A,1),(A,2),(A,3),(B,1),(B,2),(B,3),(C,1),(C,2),(C,3)}笛卡尔积的基数M=m1Xm2=3X3=9例如:D1(李力,王平,刘伟),D2(男、女)两个关系的笛卡尔积为:D1×D2={(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女)}基数M=m1×m2=3*2=6,元组的个数为6笛卡尔积可用二维表的形式表示。姓名性别李力男李力女12王平男王平女刘伟男刘伟女例如:RSABCABCA1B1C1A1B1C1A1B1C2A2B2C1A2B2C1A2B3C2RUSR-SABCABCA1B1C1A1B1C2A1B1C2A2B3C2A2B2C1RnSABCA1B1C1A2B2C113RXSABCABCA1B1C1A1B1C1A1B1C1A2B2C1A1B1C1A2B3C2A1B1C2A1B1C1A1B1C2A2B2C1A1B1C2A2B3C2A2B2C1A1B1C1A2B2C1A2B2C1A2B2C1A2B3C25.选取:选取运算是单目运算,是根据一定的条件在给定的关系R中选取若干个元组,组成一个新关系,记作:σF(R)={t|t∈R∧F(t)为真}σ为选取运算符;F为选取的条件,它由运算对象(属性名、常数、简单函数)、算术比较运算符(,≥,,≤,=,≠)和逻辑运算符(∨∧┐)连接起来的逻辑表达式,结果为逻辑值“真”或“假”。R是从关系R中选取使逻辑表达式为真的元组,进行行运算。类似For条件例:在S关系中,查询计算机系的全体学生,形成新的关系。σDEPT=’计算机’(S)或σ5=’计算机’(S)14例:在T关系中,查询工资高于1000元的男教师。形成新的关系。σ(工资1000)∧(性别=’男’)(T)例:在S关系中,查询姓张和姓王的工程师。形成新的关系。σ((姓名=‘张’)V(姓名=‘王’))∧(性别=’男’)(S)6.投影投影运算也是单目运算,关系R上的投影是从R中选择出若干属性列,组成新的关系,即对关系在垂直方向进行的运算,从左到右按照指定的若干属性及顺序取出相应列,删去重复元组。记作:ΠA(R)={t[A]|t∈R}其中A为R中的属性列,Π为投影运算符。从其定义可看出,投影运算是按列进行的运算。类似Fields字段名T关系教师号姓名性别工资系别课程号1001李力男1000计算机C11002王平女600工商C21003王红女700土木C31004刘伟男900计算机C2例查询教师的姓名、教师号及其工资。Π姓名,教师号,工资(T)或Π2,1,4(T)(结果为教师号,姓名,工资三个属性的关系)15姓名教师号工资李力10011000王平1002600王红1003700刘伟1004900*投影运算可以改变关系的属性次序例查询教师关系中有哪些系。Π系别(T)系别计算机工商土木计算机投影后取消了某些属性列后,可能出现重复行,应该取消这些完全相同的行。所以投影之后,不但减少了属性,元组也可能减少,新关系与原关系不相容。例查询讲授C5课程的教师号。Π教师号,姓名(σ课程号=’C2’(T))教师号姓名1002王平1004刘伟16例:检索王老师所授课程的课程号、课程名(T关系)Π课程号,课程名(σ姓名=’王’(T))检索年龄大于20岁的男同学的学号和姓名(S关系)Π学号,姓名(σ年龄23∧性别=’男’(S))T关系S关系学号姓名课程号课程号课程名教师1001李力C1C1法律张老师1002王平C2C2网络王老师1003王红C3C3电子李老师1004刘伟C2C4计算机赵老师检索学号为1003学生所选的课程名与任课老师。Π课程名,教师(σ学号=‘1003’∧T.课程号=S.课程号(TXS))检索’李力’同学不选的课程号。Π课程号(T)-Π课程号(σ姓名=‘李力’∧T.课程号=S.课程号(TXS))例R,S关系求:RUS,R-S,RnS,RXS,Π3,2(S)ABCABCσB’5’(R)———————————36734525772372344317RUS------------R-S------------RnS------------ABCABCABC------------------------------------367367723257257723443443345RXS----------------------------------R.AR.BR.CS.AS.BS.C------------------------------------367345367723257345257723723345723723443345443345Π3,2(S)-----------σB’5’(R)------------CBABC------------------------54723324437.连接(Join)连接运算是二目运算,是从两个关系的笛卡尔积中选取满足连接条件的元组,组成新的关系。θ为“=”时,称为等值连接;R∞S=σxθy(R×S)在连接运算中,一种最常用的连接是自然连接(R*S)。