数据库(DB)通常包含企业信息的集合。(存在于硬盘上)
区分DB:业务是否相关
数据库管理系统(DBMS):存储和检索数据(要求方便和高效)(MySQL)
数据库系统(DBS):引入数据库后整个系统(包含DB、DBMS)
DBS 包括 数据库本身的软件(数据库管理系统DBMS、操作系统OS、应用系统)、硬件、数据库管理员
!
OS指操作系统的文件系统
? a. 数据的冗余和不一致(语言不同导致无法编译)
? b.数据访问困难(难以从数据中筛选有用的)
? c.数据孤立(格式不同)
? d.完整性问题(难以添加约束)
? e.原子性问题(难以在更改过程中进行复原)
? f.多个用户的并发访存(多个用户同时 更改数据)
? g.安全性问题
数据库系统为用户提供数据的抽象视图,隐藏了数据存储和维护的某些细节
屏蔽复杂性的三个层次:
? 描述数据是怎么被存储的
? 描述数据库中数据是怎么存储的和数据之间的关系
? 是描述整个数据库是怎么存储数据的
? 描述一部分数据库中的数据
!
Secondary Memory:二级存储器(硬盘)
数据库的模式:数据库的总体设计
模式分为三种模式:物理模式(内模式)(1个)、逻辑模式(1个)、子模式(外模式)(里面可以有多个视图),分别对应三种层次
物理数据独立性:程序员通过逻辑模式来构造应用程序,应用程序不依赖于物理模式,即使物理模式改变,通过改变物理模式和逻辑模式之间的映射来保证逻辑模式不变
逻辑数据独立性:即使逻辑模式改变,也可以保证子模式不变
数据库的实例:特定时刻储存在数据库中信息的集合
用什么样的结构组织数据
关系数据库基于关系数据模型,使用表来表示数据和数据间的联系。
表就是行的集合,也就是记录的集合,每个记录有多个分量,分量就叫做属性,每一列就对应属性。
每一个表就是一个关系,基于关系构建的就是关系数据模型。
数据库设计使用的模型。基于现实世界认识构成。
实体Entity:现实世界中可区别于其他对象的事情或物体。如人、梦、账户。
实体的特征称为属性Attribute,如人所在街道。
联系Relationship:实体之间的联系
实体集Entity Set:具有相同属性所有实体的集合,如某所大学的所有教师。
联系集Relationship set:相同种类所有联系的集合
图形化表示:
!
矩形:实体集 椭圆:属性 菱形:实体间的联系
面向对象的数据模型(E-R模型扩展)
XML
网状数据模型Network data model、层次数据模型Hierarchical data model
语言分类:过程性语言procedural(指出需要的数据和怎么得到数据)C、java、非过程性语言(声明性语言)declarative(指出需要什么数据)SQL语言
!
在customer表中查询id为。。的名字
!
把表的定义存储于数据字典里。数据字典以表的形式存在,包含的数据称为元数据metadata。
元数据:关于数据的数据,包含数据库的模式database schema、完整性约束Integrity constraints、权限数据Authorization。
访问或者操纵按照某种适当数据模型组织起来的数据。
操作类型:检索数据库中的信息、插入新的信息、删除、修改信息。(增删改查)(大部分是查询操作。)
将SQL与其他高级语言配合时其他语言叫数组语言。
1.扩展数组语言,嵌入SQL语句(特殊字符作为SQL开始),整个程序通过SQL预编译器转变为数组语言过程调用,然后数组语言再解释执行.
2.提供应用程序接口,如ODBC(微软),JDBC(Java)。
基于关系模型构建。
数据和数据之间的联系通过表的集合来表示。
关系数据库包含DML和DDL(一般就是SQL语言)。
找到最优表的模式的集合。(业务层面:需要记录哪些属性,计算机科学方面:使用什么模式、属性如何分布在模式里)
决定数据库物理布局,包括文件组织形式、内部的存储结构等。
分为应用程序员Application programmers(通过数据操作语言调用)、老练用户Sophisticated users(用数据库查询语言研究数据)、专门用户Specialized users(编写数据库应用)、无经验用户Naive users(使用写好的应用程序)
职责:
1.模式定义(数据库初始表的定义)
2.存储结构和存取方法定义
3.数据访问授权
4.定义完整性约束(条件合不合理)
5.与用户联络
6.监控性能并根据需求进行变更
数据库存储于硬盘,使用操作系统、文件系统。
存储管理器storage manager提供数据库的数据和应用程序之间的接口,将各种DML查询操作翻译为底层的文件系统命令。
数据是否满足完整性约束和检查用户的权限。
保证及时系统故障,数据库也可以保证正确
保证并发的事务执行不发生冲突
数据库应用中完成单一逻辑功能的操作集合,确保数据库处于一致性状态。
事务管理器确保意外情况数据库正常。
并发控制管理器就是控制事件并发情况。
分配磁盘存储空间
管理磁盘存储信息的数据结构
将数据从磁盘取到内存中
决定哪些数据应该被缓存到磁盘中
存储数据库的数据
存储数据库的元数据和数据库的模式
data about data
提供数据库的快速访问
对一列数据进行排序,排序的那个属性后面还有一个指针,指向原数据位置。
实现:数据抽象、非过程性语言(SQL)
查询处理器Query processor将SQL的语句翻译成物理层的操作序列
解释DDL语句,并将定义记录在字典中
将查询语言的DML语句翻译成执行方案(低级指令),查询的优化
执行DML语句生成的执行计划
2.执行给定查询的其他方法(替代查询):
1.计算等价的表达式
2.采用不同的算法
评估中间统计结果的信息来计算表达式的代价,来找到最小的代价
计算代价取决于数据库必须维护的统计信息,通过统计信息statistical data(相当于人类的经验)来计算代价
1.将查询语句解析并翻译parsing and translation成查询处理器可以理解的关系代数表达式
2.系统对查询进行优化,结合统计信息尽可能选出最小查询执行代价的查询执行计划 optimization
3.查询执行引擎查询并执行evaluation
!
通过代码想数据发出查询请求:code -> engine
DML编译器: 数据字典查询权限信息,统计信息进行优化
文件管理和缓冲管理:访问数据和索引(也相当于一种数据)
!
取决于数据库运行的计算机系统。
针对并行的计算体系设计的
地理上分离的多台计算机的
问题 如果打算为项目选择一款免费、开源的 数据库 ,那么你可能会在 MySQL 与Pos...
1.如果你连追求自己喜欢的事物与人的勇气都没有,你注定是个失败者。 2.不要因...
HTML常用meta 文章目录 HTML常用meta Meta(元数据) 提示以下是本篇文章正文内容...
分析可能是: asp的一些保留字段导致,具体的大家可以参考这篇文章: ASP常见的...
了解类似的获取字符位置的方法: charAt() 获取字符串指定位置的字符 用法:strO...
非ES6代码实现继承的主流方式主要可以分为: 构造继承、原型链继承、构造继承+原...
注入获取 注入获取通过IConfiguration直接获取的方法官方文档里就有,可以直接看...
分享背景 由于一直在虚拟机的状态下开发PHP,尝试一下mac本地搭建环境.mac本身是...
伪静态:即网站本身是动态网页如.php、.asp、.aspx等格式,而这类网页还带“”加...
前言 最近在阅读某开源框架源码的时候,发现作者在其中运用了很多 Action委托 和...