您好,欢迎访问三七文档
数据库系统概论1|1101数据库课程导入一、数据库:是指存储在计算机内的可组织可共享的信息的集合。数据库特征:数据按一定的数据模型组织、描述和储存可为各种用户共享冗余度较小数据独立性较高易扩展二、数据库的逻辑结构1)层次型2)网状型3)关系型4)面向对象型三、提高数据库效率方式1)缓存数据2)索引3)高性能硬件四、数据库模型1)概念模型:从用户角度分析,绘制E-R图2)逻辑模型:从计算机角度分析的,绘制数据库模型图3)物理模型:指的是数据库的存储结构,以及索引。五、数据库设计步骤1)需求分析阶段(收集分析需求)2)概要设计阶段(从用户角度分析,绘制E-R图)3)详细设计阶段(从数据库角度分析的,绘制数据库模型图)4)实施阶段(创建数据库、数据表、建立关联、索引,并对数据表进行规范化检查)六、学好数据库能做什么1)DBA数据库管理员2)数据挖掘02数据模型一、数据模型分类1)概念模型2)逻辑模型(分为层次型、网状型、关系型、面向对象型)3)物理模型二、数据模型的三大要素1)数据结构2)数据操作3)完整性约束(包括实体完整性、参照完整性和用户定义的完整性)三、概念模型组成部分1)实体:用矩形表示,表示客观存在的可以描述的事物。2)属性:用椭圆形表示,表示实体的特征。3)码:用于唯一标识实体的属性。4)域:代表属性的取值范围,例如Sex取值范围是男,女。5)实体型:用实体名及其属性名集合来抽象同类实体的(例如学生(学号,姓名,性别,出生年份,系,入学时间))6)实体集:同一类型实体的集合7)关系:表示实体间的关系(有1:1,1:n,n:1,m:n)用菱形表示。四、绘制E-R图步骤1)标识实体2)标识实体的属性3)标识实体关联五、逻辑模型层次模型:是最早的逻辑模型a)每个节点的父节点都是唯一的b)只能表示1对多的关系c)每个记录类型可以选择一个属性排序,叫做码字段b)任何记录只有按照路径查看才有意义e)任何子女记录都不能脱离父记录而存在f)根节点没有父节点1)多对对关系在层次模型中的表示a)采用冗余节点法:也就是通过增加2个节点,把多对多关系分解成2个1对多关系。例如:学生与课程是m:n关系,分解成:学生到课程1:n,课程到学生1:n。b)采用虚拟节点法:是通过增加2个虚拟节点,把多对多关系分解成2个1对多关系。所谓虚拟节点就是一个引用,指向所引用的节点。2)对层次模型的操作a)增加、修改、删除、查询,同时必须满足完整性约束(指的是数据记录能够正确的反应实际情况)b)层次模型的完整性约束:1)添加的子节点必须拥有父节点数据库系统概论2|112)当删除1个节点时,会同时删除该节点所有子节点3)更新时,必须保证一致性3)层次模型的存储结构a)邻接法(又叫层次序列链接法):按照树的前序遍历结果实现相邻存储。b)子女-兄弟链接发:是通过给每个节点设置2个指针,分别指向做左边的子节点和最近的兄弟节点。4)层次模型的优缺点a)优点:结构清晰、查询效率高、提供了较好的完整性支持b)缺点:对m:n关系表示不自然、插入和删除限制多、访问子女节点必须通过父节点、命令复杂网状模型:1)特点a)可以有多个节点无父节点b)一个节点可以由多个父节点2)网状跟层次的区别a)可以有多个节点无父节点b)一个节点可以由多个父节点c)网状模型允许两个结点之间有多种联系(复合联系)d)网状模型可以更直接地去描述现实世界e)层次模型实际上是网状模型的一个特例3)网状模型存储结构:常用的方法为:单向链接、双向链接、环状链接、向首链接4)优缺点优点:a)能够直观的描述数据b)具有较高的性能。缺点:a)结构复杂,规模越大越复杂。b)操作复杂,不易用户使用。关系模型1)术语a)关系:就是表b)元组:就是一行c)属性:就是一列d)主码:就是主键,用于唯一标示一条记录(例如学号)03关系数据库一、笛卡尔乘积:是n个关系相乘的结果。例如:D1为学生集合(T)={张群,徐晶,王刚}D2为性别集合(S)={男,女}D1与D2的笛卡尔乘积共6条记录,是拿D1中每条记录与D2中所有记录匹配。二、关系代数运算:集合运算、关系运算、比较运算、逻辑运算1)集合运算a)并(U)例如:AUB,返回A表中全部数据,B表中全部数据,对于2表重复的内容只保留一个。b)差(-)例如:A-B,返回A表有并且B表没有的记录。c)交(n)例如:AnB,返回A表、B表共有的记录。2)术语1)元组的连串:表示元祖中包含的分量的集合。例如:若r=(r1,…,rn),s=(s1,…,sm),则定义r与s的连串为:定义rs的连串=(r1,…,rn,s1,…,sm)2)关系的度:就是关系包含的属性的数量。3)象集Zx:假设x='张三',表示求x列中值等于张三的分量所对应的Z列中分量的集合(消除重复)4)选择:σA5(R),表示从R中选择A列小于5的行。注意:选择是根据条件筛选,返回的表的结构与原表一致。5)投影Π...(R):从关系R中取若干列组成新的关系。例如:ΠA(R)表示从R中选择A列,返回新的关系,只包含A列。6)连接:R连接S={rs连串|r∈R∧s∈S∧r[A]θS[B]},表示对R*S进行筛选,筛选条件为r[A]θS[b];6.1)自然链接:从笛卡尔乘积中自动匹配列名相同且分量值相等的记录,并消除重复的列。6.2)外链接:把舍弃的记录也保存到新关系中,对于不匹配的列显示NULL。a)左外链接:例如AleftjoinB:返回左表中全部记录,对于未匹配的右表中的列设置为NULL。b)右外链接:例如ArightjoinB:返回右表中全部记录,对于未匹配的左表中的列设置为NULL。c)完整链接:例如AfulljoinB:返回2表中全部记录,对于未匹配的列设置为NULL。完整链接的结果为:(左外结果+右外结果-重复行)7)除法数据库系统概论3|11例如:关系R(X,Y),S(Y,Z)R÷S={Tr[X]|tr∈R∧Πy(S)⊆Yx}返回R中符合条件的分量集合。条件:R中X列分量对应的象集Yx,包含S中Y列的投影Πy(S)04关系数据库标准语言SQL一、SQL:结构化查询语言,86年成为ANSI标准,87成为ISO标准。可以使用Sql完成数据库生命周期内全部任务。二、SQL特点:1)综合统一2)高度非过程化3)面向集合的操作方式4)以同一种语法结构提供多种使用方式5)语言简洁,易学易用三、SQL组成部分1)数据定义语言(DDL):用于创建、修改、删除数据库对象(例如数据库、表、视图、索引),动词create、alter、drop。2)数据查询语言(DQL):用于查询数据,动词select。3)数据操纵语言(DML):用于添加、修改、删除数据。动词insert、delete、update。4)数据控制语言(DCL):用于权限控制。动词grant、revoke。四、SqlServer服务控制1)使用SqlServer配置管理器2)使用命令启动服务:netstart服务名停止服务:netstop服务名五、关系数据库的三个模式1、外模式:指的是为满足某一应用定义的视图,是对整体数据的部分展示。外模式可以有多个。2、模式:指的是数据库的逻辑结构。是对数据的整体展示。只有一个。3、内模式:指的是数据文件的组织和存储,只有一个。六、数据库分类1)系统数据库(master、model、msdb、tempdb)2)用户数据:指用户自己创建的七、数据库文件组成1)数据文件,扩展名是mdf、ndf。2)日志文件,记录对数据库所做的操作,扩展名是ldf。八、创建数据库createdatabasedatabaseNameon[primary](Name=逻辑名称,FileName=物理路径,Size=10MB,MaxSize=100MB,FileGrowth:1M|10%)logon{Name=逻辑名称,FileName=物理路径,Size=10MB,MaxSize=100MB,FileGrowth:1M|10%}go--删除数据库dropdatabasedatabaseName九、数据库对象1)Schema:架构,用于分类管理数据库对象,便于权限控制。2)表:用于存储数据3)视图:是虚拟的表,不存储数据。4)索引:用于加快查找效率5)存储过程:由多条sql语句组成的一个代码块,类似于C语言函数,存储在数据库中。6)函数:为实现某个功能编写的代码块7)触发器:监控某动作的发生,并做出反应十、Schema1)创建:CREATESCHEMAnameAUTHORIZATIONuserName2)删除:dropschemaname[cascade]sqlserver不支持cascade十一、集合操作1)union:并,把2个查询的结果合并,默认会消除重复,使用All可以保留重复。2)intersect:交,返回2个结果集共同的部分。3)except:差,返回2个结果的茶差集。数据表设计数据库系统概论4|11一、常用数据类型1)数字类型:int、float2)文本类型:char、varchar3)时间类型:datetime4)布尔类型:bit5)货币类型:money二、创建表1)创建列(定义列名、数据类型)2)设置约束建表语法:createtabletableName(columnNamedbTypeconstraint)修改表:altertabletableNameadd|altercolumn|dropcolumn--添加一列ALTERTABLE表名ADD列名数据类型约束--修改一列ALTERTABLE表名ALTERCOLUMN列名数据类型约束--删除一列ALTERTABLE表名DROPCOLUMN列名--修改表名EXECsp_rename原表名,新表名--修改列名EXECsp_rename表名.原列名,新列名,'column'删除表droptabletableName三、数据完整性指数据表中的数据能够正确的反应实际情况。约束类型:1、主键约束:用于唯一标识一条记录,前缀pk。2、唯一键约束:用于设置某列的值是唯一的,允许为null,前缀uq。3、外键约束:用于设置子表中的某列引用主表中的某列,前缀fk。4、检查约束:用于检查某列的数据有效性,前缀ck5、默认约束:用于设置某列默认值,前缀df。添加约束的方式:1、建表的同时添加(createtable)示例:createtableuserInfo(uiduniqueidentifiernotnullprimarykey,accountvarchar(20)notnullunique,passwordvarchar(2)notnull,userNamevarchar(20),userSexchar(2)notnullcheck(userSex='男'oruserSex='女')default'男',userAgeintnotnullcheck(userAge=18anduserAge=55),regTimedatetimenotnulldefaultgetDate(),departIdintforeignkey(departId)referencesdepartInfo(departId))2、以修改表的方式添加(altertable)示例:altertableuserInfoaddconstraintpk_userinfo_uidprimarykey(uid)altertableuserInfoaddconstraintuq_userinfo_accountunique(account)altertableuserInfoaddconstraintdf_userinfo_sexdefault('男')foruserSexaltertableuserInfoaddconstraintck_userinfo_userAgecheck(userage18anduserAge55)altertableuserInfoaddconstraintf
本文标题:数据库笔记整理
链接地址:https://www.777doc.com/doc-4842857 .html