数据库原理及应用(二)

简介: 数据库原理及应用(二)

1.3 数据库系统结构

从数据库最终用户角度看(数据库系统外部的体系结构) ,数据库系统的结构分为:


单用户结构


主从式结构


客户/服务器


浏览器/应用服务器/数据库服务器多层结构等


从数据库管理系统角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构


1.3.1 数据库系统模式的概念


1 型和值的概念


型(Type):对某一类数据的结构和属性的说明


值(Value):是型的一个具体赋值


举例:


学生记录型:(学号,姓名,性别,系别,年龄,籍贯)


一个记录值:(900201,李明,男,计算机,22,江苏


2 模式(Schema)


数据库逻辑结构和特征的描述


是型的描述


反映的是数据的结构及其联系


模式是相对稳定的


3 实例(Instance)


模式的一个具体值


反映数据库某一时刻的状态


同一个模式可以有很多实例


实例随数据库中的数据的更新而变动


1.3.2 数据库系统的三级模式结构

6d7d1fa7c6470bc6c7841bedd3b78850.png

① 模式(Schema)


模式(也称逻辑模式):数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图,综合了所有用户的需求


注:一个数据库只有一个模式,模式的地位是数据库系统模式结构的中间层,与数据的物理存储细节和硬件环境无关,与具体的应用程序、开发工具及高级程序设计语言无关


② 外模式(External Schema)


外模式(也称子模式或用户模式):是数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示


注:外模式的地位:介于模式与应用之间


模式与外模式的关系:一对多


外模式通常是模式的子集


一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求


对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同


外模式与应用的关系:一对多


同一外模式也可以为某一用户的多个应用系统所使用


但一个应用程序只能使用一个外模式


外模式是保证数据库安全的一个有力措施。每个用户只能看见和访问对应的外模式中的数据,数据库的其余数据是不可见的。


③ 内模式(Internal Schema)


内模式(也称存储模式):是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。


注:一个数据库只有一个内模式


!> 数据在数据库内部的表示方式:


记录的存储方式(顺序存储,按照B树结构存储, 按hash方法存储)


索引的组织方式


数据是否压缩存储


数据是否加密


数据存储记录结构的规定


最后再来回顾一下数据库系统的三级模式结构:

8726fe689cd1c5b6f46fe96cc89a3b9f.png

1.3.3 数据库的二级映像功能与数据独立性


三级模式是对数据的三个抽象级别


二级映象在 DBMS 内部实现这三个抽象层次的联系和转换


外模式/模式映像


模式/内模式映像


第二章 关系数据库

2.1 关系模型的基本术语及形式化定义

数据结构 —— 静态特性


数据操作 —— 动态特性


数据的约束条件


数据结构


1 数据结构:描述数据库的组成对象,以及对象之间的联系


2 两类对象:


与数据类型、内容、性质有关的对象


与数据之间联系有关的对象


3 数据结构是对系统静态特性的描述


数据操作


1 数据操作:对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则


2 数据操作的类型


检索


更新(包括插入、删除、修改)


3 数据模型对操作的定义


操作的确切含义


操作符号


操作规则(如优先级)


实现操作的语言


4 数据操作是对系统动态特性的描述。


数据的完整性约束条件


1 数据的完整性约束条件


一组完整性规则的集合。


完整性规则:是给定的数据模型中数据及其联系所具有的制约和储存规则


用以限定符合数据模型的数据库状态以及状态的变化,来保证数据的正确、有效、相容。


2 数据模型对约束条件的定义


反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。例如在关系模型中,任何关系必须满足实体完整性和参照完整性两个条件。


提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。


2.1.1 基本术语


1 域 Domain


一组具有相同数据类型的值的集合。


比如整数、字符串等。


2 笛卡尔积 Cartesian Product


笛卡尔积是域上的一种集合运算

a6ec3508b6c0301f2cd3fd495406f477.png

定义有点晦涩,看下面一个例子就懂了

04b90771523b9fd61aa0add74ce40ac7.png

3 关系 Relation


笛卡尔积 D1×D2×…×Dn 的一个子集叫作域 D1, D2, …, Dn 上的一个关系。


学生(学号,姓名,年级)就是一个关系


如果只有 1 个属性,则称为单元关系/一元关系


如果有 2 个属性,则称为二元关系


4 主码 Primary Key


有一个或一组这样的属性,它的值能确定该关系中其他所有属性的值。


5 候选码 Candidate Key


能唯一标识元组的属性(组),其中选择其一作为主码。


6 主属性 Prime Attribute


候选码中的诸属性。


7 非主属性 Non-Key Attribute


不出现在任何候选码中的属性。


8 关系的型与值


关系(表)的型:关系的结构(字段名、字段个数、域等)


关系(表)的值:关系中具体的元组,也称关系的实例(Instance)。


2.1.2 关系的概念及性质


关系 Relation:笛卡尔积 D1×D2×…×Dn 的一个子集叫作域 D1, D2, …, Dn 上的一个关系。


学生(学号,姓名,年级)就是一个关系


如果只有 1 个属性,则称为单元关系/一元关系


如果有 2 个属性,则称为二元关系


2.1.3 关系模式


!> 关系数据库中,关系模式是型,关系是值 。


1 什么是关系模式


关系模式(Relation Schema)是型


关系是值


关系模式是对关系的描述


元组集合的结构


属性构成


属性来自的域


属性与域之间的映象关系


元组语义以及完整性约束条件


属性间的数据依赖关系集合


2 定义关系模式


关系的描述称为关系模式。


关系模式可以形式化地表示为:R(U,D,dom,F)


说明:

R 关系名

U 组成该关系的属性名集合

D 属性组 U 中属性所来自的域

dom 属性向域的映象集合

F 属性间的数据依赖关系集合

关系模式通常可以简记为:R (U) 或 R (A1,A2,…,An)


R ——关系名


A1,A2,…,An ——属性名


!> 注:域名及属性向域的映象常常直接说明为属性的类型、长度


3 关系模式与关系


关系模式


对关系的描述


静态的、稳定的


关系


关系模式在某一时刻的状态或内容


动态的、随时间不断变化的


关系模式和关系往往统称为关系,通过上下文加以区别


2.1.4 关系数据库


关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。


(1)单一的数据结构—关系


关系模型的数据结构非常单一。在关系模型中,现实世界的实体以及实体间的各种联系均用关系来表示。在用户看来,关系模型中数据的逻辑结构是一张二维表。


(2)关系操作


关系模型中常用的关系操作包括:选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等和查询(Query)操作和增加(Insert)、删除(Delete)、修改(Update)操作两大部分。


(3)关系的三类完整牲约束


关系模型允许定义三类完整性约束:实体完整性、参照完整性和用户定义的完整性。


2.2 关系的完整性

关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义完整性。


其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。


关系模型的完整性规则是对关系的某种约束条件。任何关系在任何时刻都要满足这些语义约束


实体完整性


参照完整性


用户定义完整性


2.2.1 实体完整性


Entity Integrity


关系数据库中的每个元组应该是可区分的、唯一的。这样的约束条件用实体完整性来保证


实体完整性规则:每个关系都应有至少一个主属性,且主属性不能为空值


例如:选修(学号,课程号,成绩)关系中,学号和课程号不能为空值


!> 实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。


2.2.2 参照完整性


Referential Integrity


参照完整性规则:若属性 F 是基本关系R的外码,它与基本关系 S 的主码 Ks 相对应,则对于 R 中每个元组在 F 上的值必须为:


或者取空值


或者等于 S 中某个元组的主码值

b012c9752c5067a462f86069a2fd9b72.png

6876bc55f56e15cfa91b659e1c692466.png

2.2.3 用户定义完整性


User-defined Integrity


任何关系数据库系统都应支持实体完整性和参照完整性。除此之外,用户还可以自定义完整性约束。


用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。


例:选修(学号,课程号,成绩)成绩的取值范围在 0~100 之间


关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。


相关实践学习
体验RDS通用云盘核心能力
本次实验任务是创建一个云数据库RDS MySQL(通用云盘),并通过云服务器ECS对RDS MySQL实例进行压测,体验IO加速和IO突发带来的性能提升;并通过DMS执行DDL,将数据归档到OSS,再结合云盘缩容,体验数据归档带来的成本优势。
目录
相关文章
|
2月前
|
存储 Oracle 关系型数据库
Oracle数据库的应用场景有哪些?
【10月更文挑战第15天】Oracle数据库的应用场景有哪些?
200 64
|
3天前
|
人工智能 容灾 关系型数据库
【AI应用启航workshop】构建高可用数据库、拥抱AI智能问数
12月25日(周三)14:00-16:30参与线上闭门会,阿里云诚邀您一同开启AI应用实践之旅!
|
1月前
|
架构师 数据库
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
数据库乐观锁是必知必会的技术栈,也是大厂面试高频,十分重要,本文解析数据库乐观锁。关注【mikechen的互联网架构】,10年+BAT架构经验分享。
大厂面试高频:数据库乐观锁的实现原理、以及应用场景
|
1月前
|
存储 缓存 网络安全
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
南大通用GBase 8s 数据库 RHAC集群基本原理和搭建步骤
|
1月前
|
缓存 NoSQL 数据库
运用云数据库 Tair 构建缓存为应用提速,完成任务得苹果音响、充电套装等好礼!
本活动将带大家了解云数据库 Tair(兼容 Redis),通过体验构建缓存以提速应用,完成任务,即可领取罗马仕安卓充电套装,限量1000个,先到先得。邀请好友共同参与活动,还可赢取苹果 HomePod mini、小米蓝牙耳机等精美好礼!
|
1月前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
55 3
|
1月前
|
存储 Java 关系型数据库
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践
在Java开发中,数据库连接是应用与数据交互的关键环节。本文通过案例分析,深入探讨Java连接池的原理与最佳实践,包括连接创建、分配、复用和释放等操作,并通过电商应用实例展示了如何选择合适的连接池库(如HikariCP)和配置参数,实现高效、稳定的数据库连接管理。
68 2
|
2月前
|
XML 存储 数据库
XML在数据库中有哪些应用?
【10月更文挑战第17天】XML在数据库中有哪些应用?
53 2
|
2月前
|
供应链 数据库
数据库事务安全性控制有什么应用场景吗
【10月更文挑战第15天】数据库事务安全性控制有什么应用场景吗
|
2月前
|
SQL 数据库 数据库管理
数据库SQL函数应用技巧与方法
在数据库管理中,SQL函数是处理和分析数据的强大工具