本文主要是介绍2.27三级模式、二级映像,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
.数据库系统的三级模式二级映像
模式是相对稳定的,而实例是相对变动的
三级模式:模式、内模式、外模式
二级映像:外模式/模式映像—保证数据的逻辑独立性
内模式/模式映像—保证数据的物理独立性
第一级:Physical Schema[物理模式]描述数据在磁盘上是怎么存的,用的什么索引,是按照哪个属性的排序存储的…
第二级:Conceptal Schema [概念模式] 也叫作逻辑模式,描述数据的逻辑结构,在mysql中就是对表的定义,比如用户表里面有姓名 varchar(10)这就是一种模式;
第三极:外模式也是视图层,一个数据库可以有多个外模式,而这些外模式都是根据逻辑模式中的中的属性算出来的; 外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中的其余数据是不可见的。
(1)数据与程序的物理独立性:当数据库的存储结构改变,由数据库管理员对模式/内模式映像做相应改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
(2)数据与程序的逻辑独立性:当模式改变时(例如增加新的关系、新的属性、改变属性的数据类型等)。由数据库管理员对各个外模式/模式的映像做相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的。从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
两级映射
外模式/逻辑模式映像:一个DB只有一个模式,但可以有多个外模式。
所以,对于每一个外模式,数据库系统都有一个外模式/模式映像,它定义了这个外模式与模式的对应关系。外模式的描述中通常包含了这些映像的定义。
当模式改变时(增加新的关系、新的属性、改变属性的数据类型等),由数据库管理员对各个外模式/模式映像作相应的改变,可以使得外模式保持不变。而又由于应用程序应该是依据外模式编写的,从而应用程序不必修改,这就保证了数据与程序的逻辑独立性。
逻辑模式/内模式映像:由上可知:一个DB只有一个模式,也只有一个内模式,所有模式/内模式映像是唯一的,它定义了数据全局逻辑结构与存储结构之间的对应关系。
当数据库的存储结构改变时(例如选用了另一个存储结构),由数据库管理员对模式/内模式映像作出相应的改变,可以使得模式保持不变,从而应用程序也不必改变。这就保证了数据和程序的物理独立性。
数据的完整性约束条件是一组完整性规则。概念模型常用实体联系方法{E-R模型}来表示,逻辑数据模型主要有层次模型,网状模型,关系模型。
关系数据结构及形式化法定义
域:域是一组具有相同数据类型的值的集合。
笛卡尔积:笛卡尔积是域上的一种集合运算。
基数:一个域的不同取值个数称为这个域的基数。
关系
候选码:若关系中的某一属性组的值能唯一地标识一个元组,而其子集不能,则称该属性组为候选码。
主码:若一个关系有多个候选码,则选定其中一个为主码。
主属性:候选码的诸属性称为主属性。
非主属性:不包含在任何候选码中的属性称为非主属性或非码属性。
全码:在最极端的情况下,关系模式的所有属性是这个关系模式的候选码,称为全码。
关系可以有是三种基本类型:
基本关系
查询表
视图表
基本关系的性质:
列是同质的。
不同的列可出自一个域。
列,行的顺序无关。
任何两个元组的候选码不能取相同的值。
分量必须去原子值。
这些规范条件最基本的一条:关系的每一个分量必须是一个不可分的数据项。
关系代数的运算按运算符的不同可分为传统的集合运算和专门的关系运算。
数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,这主要通过数据库系统存取控制机制实现。
存取控制机制主要包括定义用户权限和合法权限检查两部分。
定义用户权限和合法权限检查机制一起组成了数据库管理系统的存取控制子系统。
C2级的数据库管理系统支持自主存取控制(DAC),B1级的数据库管理系统支持强制存取控制(MAC)。
自主存取控制
用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可以将其拥有的存取权限转授给其他用户。因此自主存取控制非常灵活。
强制存取控制
每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有合法许可证的用户才可以存取。强制存取控制因此相对严格。
-
可以为不同的用户定义不同的视图,把数据对象限制在一定的范围内。也就是说,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动对数据提供一定程度的安全保护。
加密的思想是根据一定的算法将原始数据----明文变换为不可以直接识别的格式----密文,从而使得不知道解密算法的人无法知道数据的内容。
数据加密主要包括存储加密和传输加密。
-
候选码:某一属性组的值能唯一地标示一个元组,而其子集不能,则称该属性组为候选码
-
主属性:候选码中的属性都称为主属性,注意:主属性非空。
-
非主属性:候选码之外的属性称为非主属性
-
全码:关系模式的所有属性是这个关系模式的候选码
-
主码:从候选码中选取一组能唯一确定一个元组的属性组作为主码。
-
1)基本关系:实际存在的表,是实际存储数据的逻辑表示
2)查询表:查询结果对应的表
3)视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。
注意:关系数据模型中的关系必须是有限集合。
-
关系模式:对关系的描述,是静态的、稳定的
-
关系:是关系模式在某一时刻的状态或内容,是动态的、随时间不断变化的,指后边的那个关系
关系数据库
-
在一个给定的应用领域中,所有关系的集合构成一个关系数据库
-
关系数据库的型与值,不是关系的型与值
1)关系数据库的型也称关系数据库模式,是对关系数据库的描述
2)关系数据库的值是关系模式在某一时刻对应的关系的集合,简称为关系数据库
SQL语言是一个功能极强的关系数据库语言。同时也是一种介于关系代数与关系演算之间的结构化查询语言(Structured Query Language),其功能包括数据定义、数据查询、数据操纵和数据控制。
SQL的特点:
1)综合统一:集数据定义、数据查询、数据操纵和数据控制等多种功能于一体。
2)高度非过程化 :面对象的设计
3)面向集合的操作方式 :操作对象是集合,并且操作结果也是集合
4)两种使用方式,统一的语法结构 :既是一种独立的语言,又是一种嵌入式的语言,(嵌入式是指嵌入别的高级语言)。
5)简洁易学
1)删除模式的时候首先应当将模式下的所有对象删除,才能删除该模式
2)在删除某个非dbo模式下的表时,需要加模式名
3)该模式不是三级模式两级映像中的模式,而是相当于一个命名空间(主要可以解决重名的问题)
4)CASCADE(级联):删除模式的同时把该模式中所有的数据库对象全部删除(SQL Server不支持)
5)RESTRICT(限制):只有当该模式中没有任何下属的对象时才能执行
建立索引的目的是加快数据查询的速度。DBA或者表的属主可以根据需要建立表的索引;但是有些DBMS可以自动建立以下索引,1)PRIMARY KEY索引(聚簇索引)2)UNIQUE索引(唯一性索引)
MySql运行机制:
mysql作为持久化存储的关系型数据库,相对薄弱的地方在于每次请求访问数据库时,都存在着I/O操作,
如果反复频繁的访问数据库。
第一:会在反复连接数据库上花费大量时间,从而导致运行效率过慢;
第二:反复的访问数据库也会导致数据库的负载过高,那么此时缓存的概念就衍生了出来。
缓存就是数据交换的缓冲区(cache),当浏览器执行请求时,首先会对在缓存中进行查找,
如果存在,就获取;否则就访问数据库。缓存的好处就是读取速度快
像redis就是一款缓存数据库,用于存储使用频繁的数据,这样减少访问数据库的次数,提高运行效率。
像关系型数据库的mysql和非关系型数据库redis二者的关系是互相配合使用。
计算机安装了数据库软件,可以认为你的计算机就是一台mysql服务器软件。
客户端通过ip地址找到计算机,然后通过端口号,找到对应的mysql服务器服务。
mysql服务器中可以有多个数据库,每个数据库都可以有很多表,每张表里都有对应的数据。
什么是SQL:
Structured Query Language:结构化查询语言
其实就是定义了操作所有关系型数据库的规则,可以使用sql语句语法操作任何关系型数据库。
但是每一种数据库操作的方式存在不一样的地方,称为“方言”。不同数据库在使用sql操作的时候会有细微的不一样地方。
SQL分类:
1) DDL(Data Definition Language)数据定义语言
用来定义数据库对象:数据库,表,列等。关键字:create, drop, alter 等
2) DML(Data Manipulation Language)数据操作语言
用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等
3) DQL(Data Query Language)数据查询语言
用来查询数据库中表的记录(数据)。关键字:select, where 等
4) DCL(Data Control Language)数据控制语言(了解)
用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等
就是说DDL是对模式进行修改(列修改),而DML是对对象做修改(行修改)
这个去重就是说看属性下对应的数据是否相同,如果相同的话,就去重,不然的话就不去重
DISTINCT NAME就是说只要NAME相同就删除,而如果加了ADDRESS,就还要判断这个相不相同,只要这个也相同了才删除
字段列表就是最后查询完后返回的数据,如果是*就是全返回表的所有数据,如果有限制的话就是只返回限制的内容
分组的话就是说是先分组,然后再操作。WHERE的话是说先操作,操作完后放到组里
这篇关于2.27三级模式、二级映像的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!