数据库基础ppt课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库基础ppt课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 基础 ppt 课件
- 资源描述:
-
1、数据库基础研讨研发中心2011年11月.听众调研是否学过数据库的课程?都用过什么数据库?使用数据库过程中有什么希望了解的内容?.数据的各种形式纸带/卡片/磁带配置文件数据流持久化对象代码图片/语音/视频.数据库系统的类型关系?非关系关系型数据库系统对象型数据库系统NoSQL存储形式文件数据库系统关系型数据库系统内存数据库系统分布式数据库系统.OLTP/OLAP联机事务处理OLTP(On-Line Transaction Processing)联机分析处理OLAP(On-Line Analytical Processing)OLTPOLTPOLAPOLAP用户用户操作人员,低层管理人员决策人员,
2、高级管理人员功能功能日常操作处理分析决策DB DB 设计设计面向应用面向主题数据数据当前的, 最新的细节的, 二维的分立的历史的, 聚集的, 多维的集成的, 统一的存取存取读/写数十条记录读上百万条记录工作单位工作单位简单的事务复杂的查询用户数用户数上千个上百万个DB DB 大小大小100MB-GB100GB-TB.数据模型的层次数据模型分成两个不同的层次(1) (1) 概念模型概念模型 也称信息模型,它是按用户的观点来对也称信息模型,它是按用户的观点来对数据和信息建模。数据和信息建模。 (2) (2) 数据模型数据模型 主要包括网状模型、层次模型、关系模主要包括网状模型、层次模型、关系模型等
3、,它是按计算机系统的观点对数据建模型等,它是按计算机系统的观点对数据建模。 .数据库设计步骤需求分析概念结构设计数据库运行和维护数据库实施数据库物理设计逻辑结构设计需求说明与数据说明概念结构逻辑结构 物理结构数据库系统.概念模型 E-R图实体-联系图(Entity Relationship Diagram)基本要素是实体型、属性和联系.概念模型-实体间联系类型班级班级-班长班长111:1联系课程选修学生mnm:n联系班级组成学生1n1:n联系.实体间联系类型职工领导1n同一实体型内部的1:n联系课程讲授教师1m多个实体型间的1:n联系参考书n.联系属性的表示方法课程选修学生mn成绩学生学号年龄
4、性别姓名.数据模型层次模型网状模型关系模型.三类完整性约束实体完整性一个关系(就是表格)中不能有重复的行参照完整性当更新、删除、插入一个表中的数据时,通过参照引用关联的另一个表中的数据用户定义的完整性反映应用领域需要遵循的约束条件,体现了具体领域中的语义约束.逻辑范式1NF:属性不可分割2NF:属性完全依赖于主键3NF:属性不依赖于其它非主属性BCNF4NF5NF6NF.1NF:属性不可分割如果关系模式R的每个关系r的属性都是不可分的数据项,那么就称R是第一范式的模式。简单的说,每一个属性都是原子项,不可分割是关系模式应具备的最起码的条件.1NF:属性不可分割学生编号姓名性别联系方式20080
5、901张三男email:,phone:8888666620080902李四女email:,phone:66668888.1NF:属性不可分割学生编号姓名性别电子邮件电话20080901张三男8888666620080902李四女66668888学生编号姓名性别联系方式20080901张三男email:,phone:8888666620080902李四女email:,phone:66668888.2NF:属性完全依赖于主键首先要满足第一范式每个非主属性是由整个主键函数决定的,而不能由主键的一部分来决定不能存在仅依赖主关键字一部分的属性。如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一
6、个新的实体,新实体与原实体之间是一对多的关系.2NF:属性完全依赖于主键学生课程教师教师职称教材教室上课时间李四Spring张老师java讲师Spring深入浅出3018:00张三Struts杨老师java讲师Struts in Action30213:30主键是:学生和课程.2NF:属性完全依赖于主键学生课程教师教师职称 教室上课时间李四Spring 张老师 java讲师3018:00张三Struts 杨老师 java讲师30213:30课程教材SpringSpring深入浅出StrutsStruts in Action主键是:学生和课程学生课程教师教师职称教材教室上课时间李四Spring张
7、老师java讲师Spring深入浅出3018:00张三Struts杨老师java讲师Struts in Action30213:30.不符合2NF的后果数据冗余更新异常插入异常删除异常学生课程教师教师职称教材教材教室上课时间李四Spring张老师java讲师Spring深入浅出3018:00张三Struts杨老师java讲师Struts in Action30213:30.3NF3NF:属性不依赖于其它非主属性满足第二范式非主属性之间不存在函数依赖由于满足了第二范式,表示每个非主属性都函数依赖于主键。如果非主属性之间存在了函数依赖,就会存在传递依赖,这样就不满足第三范式.3NF:属性不依赖于其
8、它非主属性学生课程教师教师职称教室上课时间李四Spring张老师java讲师3018:00张三Struts杨老师java讲师30213:30.3NF:属性不依赖于其它非主属性学生课程教师教室上课时间李四Spring 张老师3018:00张三Struts 杨老师30213:30教师教师职称张老师java讲师杨老师java讲师“教师职称”依赖于“教师”学生课程教师教师职称教室上课时间李四Spring张老师java讲师3018:00张三Struts杨老师java讲师30213:30.BC范式满足第三范式所有非主键属性都必须依赖于主键不存在任何字段对任一主键字段的传递函数依赖.BCNF范式假设仓库管理
9、关系表为StorehouseManage(仓库ID, 存储物品ID, 管理员ID, 数量),且有一个管理员只在一个仓库工作;一个仓库可以存储多种物品。这个数据库表中存在如下决定关系:(仓库ID, 存储物品ID) (管理员ID, 数量)(管理员ID, 存储物品ID) (仓库ID, 数量)所以,(仓库ID, 存储物品ID)和(管理员ID, 存储物品ID)都是StorehouseManage的候选关键字,表中的唯一非关键字段为数量,它是符合第三范式的。但是,由于存在如下决定关系:(仓库ID) (管理员ID)(管理员ID) (仓库ID)即存在关键字段决定关键字段的情况,因此不符合BCNF可以把仓库管理
10、关系表分解为二个关系表:仓库管理:StorehouseManage(仓库ID, 管理员ID);仓库:Storehouse(仓库ID, 存储物品ID, 数量)。.不符合BCNF的问题删除异常:当仓库被清空后,所有”存储物品ID”和”数量”信息被删除的同时,”仓库ID”和”管理员ID”信息也被删除了。插入异常:当仓库没有存储任何物品时,无法给仓库分配管理员。更新异常:如果仓库换了管理员,则表中所有行的管理员ID都要修改。.范式越高越好?优点避免数据冗余减少数据存储空间减轻维护数据完整性的麻烦缺点操作困难,需要联系多个表才能得到所需要数据范式越高性能可能会越差权衡以范式作为依据判断数据模型的问题是否
11、改为更高范式需要经验和实验判断.DN地域树状结构 地域表国家省市地区中国北京海淀区朝阳区河北廊坊保定石家庄IDID名称名称级别级别父父IDID终端数终端数1中国1Null22北京2133河北2134海淀区3255朝阳区3266廊坊3377保定3388石家庄339.DN统计廊坊【6】的终端总数:select sum(终端数) from 地域表 where ID=【6】统计北京【2】的终端总数:select sum(终端数) from 地域表 where ID=【2】or 父ID=【2】统计中国【1】的终端总数:select sum(终端数) from 地域表 where ID=【1】or 父ID
12、=【1】 or 父ID in (select ID from 地域表 where 父ID=【1】)统计任一地域的终端总数的通用算法?.DNSelect sum(终端数) from 地域表 where DN like 【顶级DN】%其中可以为:廊坊【1|3|6|】、北京【1|2|】、中国【1|】IDID名称名称级别级别父父IDIDDNDN终端数终端数1中国1Null1|22北京211|2|33河北211|3|34海淀区321|2|4|55朝阳区321|2|5|66廊坊331|3|6|77保定331|3|7|88石家庄331|3|8|9.数据类型各种数字各种字符串各种时间自增量空值建议尽量使用标准
13、类型,便于移植使用前查手册,确定类型的具体含义.各种数字Int /Smallint/ Mediumint/Tinyint/BigintBit(SQL Server)/boolean(PostgreSQL)Decimal/Numeric/Float/Double/MoneyRowID(Oracle)Uniqueidentifier(SQL Server):GUIDEnum/Set(Mysql).各种字符串char和varchar的区别定长和变长,效率和空间varchar(n) 和varchar(max) (SQL Server2005)varchar 和 nvarchar 的区别(SQL Ser
14、ver)按字节存储和按unicode字符存储varchar和varchar2(Oracle)oracle增加varchar2类型,保证在任何版本中该数据类型向上和向下兼容varchar是跨数据库兼容BLOG和Text (SQLServer):大小写敏感和不敏感BLOB和CLOB(Oracle):二进制数据和字符型数据.时间Date/Time(mysql)DatetimeSmalldatetime(SQL Server)Timestamp.自增量SQLServer:IDENTITY (1, 1)Mysql:int not null auto_incrementAccess:AutoNumberO
15、racle:sequencePostgreSQL:bigserial/serial.空值列属性设置是否可以为空Is null / is not null空串与空值不同在MySQL中,含有空值的列很难进行查询优化.字段命名预先确定命名规范:前缀、是否加下划线避免简单单词,移植时可能会关键字冲突.字段设计数据类型尽量用数字型,数字型的比较比字符型的快很多数据类型尽量小,这里的尽量小是指在满足可以预见的未来需求的前提下的尽量不要允许NULL,除非必要,可以用NOT NULL+DEFAULT代替少用TEXT和IMAGE,二进制字段的读写是比较慢的,而且,读取的方法也不多,大部分情况下最好不用自增字段要
16、慎用,不利于数据迁移。.SQL基础distinctin/between/is null/likeTop 10/limit 10UNION视图子查询半连接/外连接Group by/max/min/avg/having临时表Where 1=1.子查询select sum(终端数) from 地域表 where ID=【1】or 父ID=【1】 or 父ID in (select ID from 地域表 where 父ID=【1】)Update 地域表 set dn= (select dn from 地域表 as p where 地域表.父ID=p.id)+ID+| Select * into ta
展开阅读全文