数据库知识总结
一、数据库理论知识
1.1概述
1、4个基本概念:
数据:(描述事物的符号记录)
数据库:(永久存储、有组织、可共享)
数据库系统:(由DB、DBMS、DBA、应用程序组成的存储,管理,处理和维护数据的系统)
数据库管理系统:(用户与操作系统之间的一层数据管理软件)
2、数据管理技术的发展:人工管理—>文件系统—>数据库系统
3、数据库系统的特点:
数据结构化、共享度高冗余度低、数据独立性高、有DBMS统一管理和控制(数据的安全性保护,完整性检查,并发控制,数据库恢复)
1.2数据模型
1、数据模型是对现实世界数据特征的抽象;数据模型是数据库系统的核心和基础
2、两类数据模型:
概念模型:(信息模型,用用户的观点来建模,主要用来数据库设计)
逻辑模型:(按计算机系统的观点来就建模,主要用来数据库管理系统的实现)和物理模型
现实世界--->信息世界--->机器世界
3、数据模型的组成要素:数据结构、数据操作、数据的完整性约束条件
4、概念模型:具有较强的语义表达能力,实体之间有一对一,一对多,多对多等多种类型,模型用实体-联系方法来表达,即E-R模型
5、逻辑模型中常用的数据模型:层次模型(一对一、一对多)、网状模型(可多对多)、关系模型
层次模型:树形结构中的层次关系表示,指针有向边;优:数据结构比较清晰、层次数据库中的查询效率较高。缺:多对多的联系就不适合,增删查改的限制较多,编写复杂
网状模型:更直接的描述现实世界,有更好的性能,存取效率较高;结构复杂,不易使用操作
关系模型:关系--->表、元组--->行或记录、属性--->列、分量-->一条几句中的一个列值、非规范关系-->表中有表。关系模型的存取路径对用户透明,刚搞的数据独立性,更好的安全。关系的完整性约束条件:实体完整性,参照完整性和用户定义完整性
1.3数据库系统的结构
1、数据模型是以 type—value (模式是相对稳定的,实例是相对变动的)
2、三级模式:
外模式(子模式或用户模式):是数据库用户的数据视图,是与某一应用有关的数据逻辑表示,应用程序(一个数据库可有多个外模式) 模式(逻辑模式):是数据库中全部用户的逻辑结构和特征的描述,是所以用户的公共数据视图(中间层)(一个数据库只有一个外模式) 内模式(存储模式):是数据物理结构和存储方式的描述。(一个数据库只有一个外模式)
3、数据库的二级映像:
外模式/模式映像:(当模式发生改变时,通过改变映像,是外模式保不变)数据的逻辑独立性
模式/内模式映像:(当内模式发生改变时,通过改变映像,是模式保持不变)数据的物理独立性
二、关系数据库
关系:域:一组具有相同数据类型的值的集合;
笛卡尔积:域上的一种集合运算;
基数:一个域允许的不同取值的个数;
候选码、主码、主属性、非主属性、外键(不是关系A 的主键,但是关系B的主键,则是A 的外键)
2.1概念
1、操作:增(insert)删(delete)查(query)改(update)
查:选择(select)、投影(project)、并(union)、差(except)、笛卡尔积(m+n列的关系表)、连接(join)、除(divide)、交(intersection)
2、具有关系代数和关系演算语言双重特点的语言:SQL(高度非过程化)
3、完整性约束:
实体完整性:针对基本关系而言的、主码不能为空,为唯一标识的
参照完整性:(相互引用)外键(空值/另一个关系中对应有的数据)
用户定义完整性:(语义要求)
2.1关系代数
4、关系代数运算符有:
**传统的集合运算符**(行,交并差笛卡尔积)和专门的关系运算符(行及列选择,投影,连接,除)
**专门的关系运算符:**
1、选择(selection,>,<,<>,非)
2、投影(projection,列)
3、连接(join)等值连接,自然连接(去掉多余重复部分)、外连接(其他属性不删掉,用空值表示),左外连接,右外连接
4、除(division)(多用于至少,全部...R÷S=T T中包含所有在R中不在S中的属性及其值,且T的元组与S 的元组的所有组合都在R中,R(X,Y)÷S(Y)=T(X).)
例子:
三、关系数据库标准语言SQL(结构化查询语言)
3.1概念
1、SQL的特点:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提高多种使用方式、语言简洁易学易用
2、基本表与视图的区别与联系
基本表是本身独立存在的表,在关系数据库管理系统中一个关系对应一个基本表。
视图是一个或几个基本表导出的表,它本身不独立存在于数据库中,即数据库中只存在视图的定义而不存放视图对应的数据,这个数据仍然在导出视图的基本表中,因此视图是一个虚表。
3.2数据定义
1、关系数据库系统支持三级模式结构,其模式,外模式,内模式中的基本对象有模式、表、视图、索引
SQL标准不提供修改模式定义和修改视图定义的操作,如果想修改这些对象只能先删除再重建
六、关系数据理论
6.1问题的提出
1、如何构造一个合适的数据库模式(即应该构造几个关系模式,即关系数据库逻辑设计问题,关系模型的背景)
2、数据依赖是一个关系内部属性与属性之间的一种约束关系,这种约束关系是通过属性间值的相等与否体现出来的数据间相关联系(已经提出来的数据依赖有:函数依赖(FD)、多值依赖(MVD)、连接依赖
3、关系模型存在以下问题:数据冗余、更新异常、插入异常、删除异常
6.2规范化
1、依赖关系:
1、X->Y,Y不包含于X,则称X->Y是非平凡的函数依赖
2、X->Y,Y包含于X(Y<=X),则称X->Y是非平凡的函数依赖
3、在R(U)中,如果X->Y,对于X的人恶化一个真子集X',都有X'不->Y,则称Y对X是完全函数依赖关系记:X-F>Y
4、若X->Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记X-P>Y
5、如果X->Y,Y不->X,Y->Z则Z对X传递依赖
6、候选码(主码的集合)、主码(能唯一确定这个关系的码)、超码(候选码是最小的超码)、外码(关系模型R中的属性或者属性组X不是R的码,但X 是另一个关系模式的码,则X是R 的外码)
2、范式:关系数据库中的关系是要满足异地那个要求的,满足不同程度要求的为不同范式
3、第一范式1NF:满足每一个分量都是不可分的数据项的关系模式
4、第二范式2NF:若R为第一范式,且每一个非主属性完全函数依赖于任何一个候选码,则R为第二范式。即有三种情况①不能有部分函数。②全码(全部属性为主属性)。③单属性。单候选码一定为第二范式
5、第三范式3NF:每一个非主属性既不传递依赖于码,也不部分依赖于码
6、BCNF:在第三范式的基础上,若每一个决定因素都包含码(①、所有非主属性对每一个码都是完全函数依赖。②、所有主属性对每一个不包含它的码也是完全函数依赖。③、没有任何属性完全函数依赖于非码的任何一组属性
7、多值依赖:具有对称性、具有传递性、函数依赖可以看成多值依赖的特殊情况
多值函数与函数依赖的基本区别:多值依赖的有效性与属性集的范围有关;
若函数依赖X->Y在R(U)上成立,则对于任何Y'包含于Y均有X->Y'成立。
而多值依赖X->->Y在R(U)上成立,不能断言对于任何Y'包含于Y均有X->->Y'成立
8、第四范式4NF:就是限制关系模式的属性之间不允许有非平凡且非函数依赖的多值依赖
9、1NF———消除非主属性对码的部分函数依赖——->2NF—-消除非主属性对码的传递函数依赖——>3NF——消除主属性对码的部分和传递函数依赖—–>BCNF———消除非平凡且非函数依赖的多值依赖————>4NF
七、数据库设计
7.1数据库设计概述
1、数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用环境,使之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求(在数据库张应该存储和管理哪些数据对象)和数据操作(增删查改等)要求
2、数据库设计的特点:
三分技术、七分管理、十二分的基础数据(对数据的收集、整理、组织和不断的更新);
结构(数据)设计和行为(处理)设计相结合 (即数据库设计和应用系统设计相结合);
3、有哪些数据库设计方法:
新奥尔良方法、基于E-R模型的设计方法、3NF(第三范式)的设计方法、面向对象的数据库设计方法、统一建模语言方法
4、数据库设计的基本步骤:
1需求分析阶段、2概念设计阶段(E-R图)、3逻辑设计阶段(数据模型)、4物理设计阶段(物理存储安排等)、5数据库实施阶段、6数据库运行和维护阶段
1,2可独立于任何数据库管理系统
5、E-R图:实体(长方形)、属性(椭圆形)、联系(菱形) ①确定实体和属性 ②实体间的联系 参与联系的实体型的数目称为联系的度(二元联系、三元联系、N元联系)
6、如果一个实体型的存在依赖于其他实体型的存在,则这个实体型叫做弱实体型,否则为强实体型。
7、属性:①作为属性,不能再有具有需要描述的性质 ②属性部与其他实体具有联系
8、各子系统的E-R图之间的冲突主要有三类:属性冲突、命名冲突、结构冲突
八、数据库编程
SQL编程技术可以有效的克服SQL语言实验复杂应用方面的不足,提高应用系统和数据库管理系统间的互操作性
8.1嵌入式SQL
1、嵌入式SQL是将SQL语句嵌入程序设计语言中,对于嵌入式SQL语言,数据库管理系统一般采用预编译方法处理(即由数据库管理系统的预处理程序对源程序进行扫描,识别出嵌入式SQL语句,把它们转换成主语言调用语句,以使主语言的编译程序将纯的主语言程序编译成目标码)
2、在嵌入式SQL中为了快速区分SQL语句和主语言语句,所有的SQL 语句都必须加前缀
数据库缩写解释:DB(DateBase)数据库 , DBS(DateBase System)数据库系统 , DBMS(DateBase Manage System)数据库管理系统 , DDL(Data Definition Language)数据定义语言 , DML(Data Manipulation Language)数据操纵语言 , DBTGData Base Task Group)数据库任务组 , DCL (Data Control Language) 数据控制语言
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/38870.html