一、数据库基础知识-程序员宅基地

技术标签: 数据库  

数据库的四个基本概念

数据、数据库、数据库管理系统、数据库系统是与数据库技术密切相关的四个基本概念

数据(DATA):

描述事物的符号记录称为数据。

数据库(DB):

数据库是长期存储在计算机内、有组织、可共享的大量数据的集合。数据库的数据按一定的数据模型组织描述、存储,具有较小的冗余度、较高的数据独立性和易扩展性,并且 可以为各种用户共享,笼统的讲数据库具有永久存储、有组织可共享三个基本特点。

数据库管理系统(DBMS):

数据库管理系统和操作系统一样是计算机的基础软件。主要功能包括:

1.数据定义功能

数据库管理系统提供数据定义语言(DDL),用户通过它可以对数据库的数据对象的组成和结构进行定义。

2.数据组织、存储和管理

数据库管理系统要分类组织、存储、管理各种数据,包括数据字典、用户数据、数据库的存取路径等。提供多种存取方法(如索引查找、hash查找、顺序查找等)来提高存取率

3.数据操纵功能

数据库管理系统提供数据库操作语言(DML),用户可以使用它操作数据,实现对数据库 的基本操作,如增删改查。

4.数据库的事务管理和运行管理

书记库在建立、运用、维护时由数据库管理系统统一管理和控制,确保事务的正确运行,保证数据的安全性、完整性、多用户对数据的并发使用以及发生故障后的系统恢复。

5.数据库的建立和维护功能

数据库的建立和维护功能包括数据库初始数据的输入、转换功能、数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。这些功能一般是由一些实用程序或管理工具完成的。

6.其他功能

包括与其他软件的通信功能,与另一个数据库管理系统的数据转换等

数据库系统:

数据库系统由数据库、数据库管理系统、应用程序和数据库管理员组成的存储、管理、处理、维护数据的系统。

数据管理管理技术的产生和阶段

1.人工管理阶段(20世纪50年代中期以前)

特定:数据不保存、应用程序管理数据、数据不共享、数据不具独立性

2.文件系统阶段(20世纪50年代后期到60年代中期)

特定:数据可以长期保存、由文件系统管理数据,但是由文件系统保存的缺点包括数据共享性差,冗余度大,数据独立性差

3.数据库系统阶段(20世纪60年代后期)

数据库技术应运而生,出现了数据库管理系统

数据库系统的特点

1.数据结构化

数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统和文件系统的本质区别

2.数据库共享性高、冗余度低且以扩充

数据共享可以大大减少数据冗余,节约储存空间。数据共享还能避免数据之间的不相容性与不一致性

3.数据独立性高

分为物理独立性逻辑独立性

物理独立性指用户的应用程序和书记库中数据的物理存储是相互独立的

逻辑独立性指的是用户的应用程序与数据库的逻辑结构是相互独立的。

4.数据由数据库管理系统统一管理控制

因为数据库的共享是并发的,为了确保数据库的数据正确与一致性,数据库管理系统必须提供下面几方面数据库控制功能

(1)数据的安全性保护

        指保护数据防止不合法使用造成的数据泄密和破坏

(2)数据的完整性检查

        指数据的正确性、有效性和相容性

(3)并发控制

        当多个用户同时进行存取修改数据库是,要对并发操作加以控制和协调

(4)数据库恢复

       综上所述,数据库是长期存储再计算机内有组织、大量、共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统在数据库建立、运用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用时进行并发控制,发生故障后进行数据库回复

数据库系统的出现使信息系统从以加工数据的程序为中心转向围绕共享的数据库为中心的新阶段。

数据模型(是数据库系统的核心和基础)

两类数据模型:第一种是概念模型,第二种是逻辑模型和物理模型。

概念模型

模型的作用:现实世界—信息世界—机器世界

模型的层次:概念模型—逻辑模型—物理模型

逻辑模型三要素

数据结构 数据操作 数据完整性约束
层次模型 层次(树) 增删改查
网状模型 网(图) 增删改查
关系模型

关系(表)

关系、元组、属性、码、域、分量       

增删改查

实体完整性

参照完整性

用户定义的完整性

概念模型:

信息世界的基本概念

1.实体

客观存在并可以相互区分的事务叫实体

2.属性

实体所具有的某一特性叫属性

3.码(主键)

唯一标识实体的属性集称为码

4.实体型

用实体名以及其属性名集合来抽象和刻画同类实体,称为实体型

5.实体集

同一类型实体的集合称为实体集

6.联系

实体之间的联系通常是指不同实体集之间的联系

实体间的联系分为一对一、一对多、多对多

概念模型的一种表示方法:实体-联系方法(E-R)

数据模型的组成要素

数据模型通常由数据结构、数据操作和数据的完整性约束三部分组成

1.数据结构

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

2.数据操作

数据操作指对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作以及有关的操作规则

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

3.数据的完整性约束条件

数据的完整性约束条件是一组完整的性规则

常用的数据模型

层次模型

网状模型

关系模型

面向对象数据模型

对象关系数据模型

半结构化数据模型

层次模型

1.层次模型的数据结构

在数据库中定义满足下面两个条件的基本层次联系的集合为层次模型

(1)有且只有一个节点没用双亲结点,这个节点称为根结点

(2)根以外的其他结构有且只有一个双亲结点

层次结构像一课倒立的树

2.层次模型的数据操作与完整性约束

数据操作:查询、插入、删除、更新。进行插入、删除、更新操作要满足层次模型的完整性约束条件。

进行插入操作,如果没有相应的双亲结点值就不能插入他的子女结点值。

进行删除操作时,如果删除双亲结点值,则相应的子女结点值也将被同时删除。

3.层次模型的优缺点:

优点:数据结构简单清晰、查询效率高、提供了良好的完整性支持

缺点:现实世界中很多联系是非层次性、如果一个结点具有多个双亲结点等,用层次结构表示这类联系就很笨拙,只能通过引入冗余数据或创建非自然的数据结构来解决,对插入和删除操作的限制比较多,因此应用程序的编写比较复杂、查询子女结点必须经过双亲结点、由于结构严密,层次命令趋于程序化

网状模型

1.网状模型的数据结构

满足以下两个条件的基本层次联系集合称为网状模型

(1)允许一个以上的结点无双亲

(2)一个结点可以有多于一个的双亲

2.网状模型的数据操作和完整性约束

网状模型一边来说没有层次模型那样严格的完整性约束条件,但具体的网状数据库系统对数据操作都加了一些限制,提供了一定的完整性约束

例如DBTG在模式数据定义语言中提供了定义DBTG数据库完整性的若干概念,主要有:

(1)支持记录码的概念,码即唯一标识记录的数据项的集合,例如学生记录表中学生学号是主码,因此数据库不允许学生记录中学号出现重复

(2)保证一个联系中双亲记录和子女记录之间是一对多的联系

(3)可以支持双亲记录和子女记录之间的某些约束,例如有些子女记录要求双亲记录存在才能插入,双亲记录删除时也连同删除

3.网状模型的优缺点

优点

(1)能够更为直接的描述现实世界

(2)具有良好的性能,存取效率较高

缺点

(1)结构比较复杂,且随着应用环境的扩大,数据库的结构变得越来越复杂,不利于最终用户掌握

(2)网状模式的DDL、DML复杂。,并且要嵌入某一种高级语言,用户不容易掌握

(3)由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,加重编写应用程序的负担

关系模型

1.关系模型的数据结构

关系:一个关系对应通常说的一张表。

元组:表中的一行称为援元组。

属性:表中的一列叫属性。

码:也称码键,表中的某一个属性值,他可以唯一确定一个元组。

域:域是一组具有相同数据类型的值和集合。属性的取值范围来自某个域。

分量:元组中的一个属性值。

关系模式:对关系的描述一般为

关系名(属性1,属性2,...,属性n)

关系模型要求关系必须是规范化的,关系的每一个分量必须是不可分的数据项

术语对比

关系术语         一般表格的术语
关系名 表名
关系模式 表头(表格的描述)
关系 二维表
元组 记录或行
属性
属性名 列名
属性值 列值
分量 一条记录中的一个列值
非规范关系 表中有表

关系模型的数据操纵和完整性约束

关系模型的数据操纵包括查询插入删除和更新数据,关系完整性约束分为:实体完整性参照完整性用户定义的完整性约束

2.关系模型的优缺点

优点

(1)关系模型与格式化模型不同,他是建立在严格的数学概念的基础上

(2)关系模型的概念单一。无论实体还是实体之间的联系都用关系表示,所以其数据结构简单、清晰,用户易懂易用。

(3)关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作

缺点

关系模型的存取路径对用户是隐蔽的所以查询效率不如格式化数据模型

数据库的三级模式结构

1.模式(类似表)

模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述(数据的型),是所有用户的公共数据视图。一个数据库只能有一个模式。

2.外模式(类似视图,表的部分)

外模式也称子模式或用户模式,它是数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示,外模式是模式的子集,一个数据库可以有多个外模式。

3.内模式

也成为存储模式,一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内内部的组织方式。

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

1.外模式/模式映像

当模式改变时(例如增加新的关系,新的属性等)由数据库管理员对各个外模式/模式映像作相应改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据于程序的逻辑独立性,简称数据的逻辑独立性

2.模式/内模式映像

当数据库的存储结构改变时(例如先择了另一种存储结构)由数据库管理员对模式/内模式映像作相应改变,可以使模式保持不变,从而应用程序也不必改变。保证了数据与程序的物理独立性,简称数据的物理独立性。

数据与程序之间的独立性是的数据的定义和描述可以从应用程序中分离出去。另外,由于数据的存取由数据库管理系统管理,从而简化了应用程序的编制,大大减少了应用程序的维护和修改。

数据库的组成

1.硬件平台以及数据库

足够大的内存,存放操作系统、数据库管理系统的核心模块、数据缓冲区和应用程序

足够大的磁盘或磁盘阵列等等

2.软件

主要包括:数据库管理系统,支持数据库管理系统运行的操作系统,具有与数据库接口的高级语言及其编译工具,以数据库管理系统为核心的应用开发工具,为特定应用环境开发的数据库应用系统

3.人员

主要包括:数据库管理人员(DBA),系统分析员和数据库设计人员,应用程序员,用户

其中数据库管理人员的主要职责包括:

(1)决定数据库中的信息内容和结构

(2)决定数据库的存储结构和存取策略

(3)定义数据的安全性要求和完整性约束条件

(4)健康数据库的使用和运行

(5)数据库的改进和重组,重构

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/shroud096/article/details/123956684

智能推荐

Sandboxie v5.45.2正式版 系统安全工具_sandboxie系统安全工具-程序员宅基地

文章浏览阅读141次。简介:菜鸟高手裸奔工具沙盘Sandboxie是一款国外著名的系统安全工具,它可以让选定程序在安全的隔离环境下运行,只要在此环境中运行的软件,浏览器或注册表信息等都可以完整的进行清空,不留一点痕迹。同时可以防御些带有木马或者病毒的恶意网站,对于经常测试软件或者不放心的软件,可放心在沙盘里面运行!下载地址:http://www.bytepan.com/J7BwpqQdKzR..._sandboxie系统安全工具

Mac技巧|如何在 MacBook上设置一位数登录密码-程序员宅基地

文章浏览阅读230次,点赞4次,收藏5次。Mac老用户都知道之前的老版本系统是可以设置一位数登陆密码的,但是更新到10.14以后就不可以了,今天就教大家怎么在新版本下设置Mac一位数登陆密码。

chatgpt中的强化学习 PPO_chatgpt使用的强化学习-程序员宅基地

文章浏览阅读3.4k次。本该到此结束,但是上述实现的时候其实是把生成的每一步的奖励都使用统一的句子级reward,但该代码其实也额外按照每个token来计算奖励值的,为了获取每个token的奖励,我们在生成模型的隐层表示上,多加一个线性层,映射到一维,作为每个状态的预测奖励值。类似的,在文本生成中我们也可以用蒙特卡洛方法来估计一个模型的状态价值。假如我们只采样到了s1和s2,没有采样到s3,由于7和3都是正向奖励,s1和s2的训练后生成的概率都会变大,且s1的概率变的更大,这看似合理,但是s3是未参与训练的,它的概率反而减小了。_chatgpt使用的强化学习

获取不规则多边形中心点_truf计算重心-程序员宅基地

文章浏览阅读433次,点赞10次,收藏8次。尝试了3种方法,都失败了!_truf计算重心

HDU 1950最长上升子序列 学习nlogn_poj 1631 hdu 1950为啥是最长上升子序列-程序员宅基地

文章浏览阅读406次。学习LIS_poj 1631 hdu 1950为啥是最长上升子序列

kubernetes===》二进制安装_sed -ie 's#image.*#image: ${ epic_image_fullname }-程序员宅基地

文章浏览阅读550次。一、节点规划主机名称IP域名解析k8s-m-01192.168.12.51m1k8s-m-02192.168.12.52m2k8s-m-03192.168.12.53m3k8s-n-01192.168.12.54n1k8s-n-02192.168.12.55n2k8s-m-vip192.168.12.56vip二、插件规划#1.master节点规划kube-apiserverkube-controller-manage_sed -ie 's#image.*#image: ${ epic_image_fullname }#g

随便推点

UAC绕过提权_uac白名单 提权-程序员宅基地

文章浏览阅读106次。UAC绕过提权_uac白名单 提权

Linux一键部署OpenVPN脚本-程序员宅基地

文章浏览阅读664次,点赞7次,收藏12次。每次架设OpenVPN Server就很痛苦,步骤太多,会出错的地方也多,基本很少一次性成功的。

头文件的相互包含问题_多个头文件相互包含-程序员宅基地

文章浏览阅读397次。 今天看了继承以及派生类,并且运行了教程中的一个实例,但是仍然有好多坑。主要如下:建立了一个基类bClass以及由基类bClass派生的一个dClass,并且建立两个头文件.h分别申明这两个类,在cpp程序中进行运行来检验。具体程序如下:#ifndef ITEM_BASE//为避免类重复定义,需要在头文件的开头和结尾加上如这个所示 #define ITEM_BASEclass bClass..._多个头文件相互包含

python -- PyQt5(designer)安装详细教程-程序员宅基地

文章浏览阅读1.3w次,点赞19次,收藏88次。PyQt5安装详细教程,安装步骤很详细

微信小程序scroll-view去除滚动条-程序员宅基地

文章浏览阅读154次。官方文档:https://developers.weixin.qq.com/miniprogram/dev/component/scroll-view.html。_scroll-view去除滚动条

POJ-3233 Matrix Power Series 矩阵A^1+A^2+A^3...求和转化-程序员宅基地

文章浏览阅读146次。S(k)=A^1+A^2...+A^k.保利求解就超时了,我们考虑一下当k为偶数的情况,A^1+A^2+A^3+A^4...+A^k,取其中前一半A^1+A^2...A^k/2,后一半提取公共矩阵A^k/2后可以发现也是前一半A^1+A^2...A^k/2。因此我们可以考虑只算其中一半,然后A^k/2用矩阵快速幂处理。对于k为奇数,只要转化为k-1+A^k即可。n为矩阵数量,m为矩阵..._a^1 a^2 ... a^k