目录
数据模型
描述数据库结构、操作这些结构的操作以及数据库应遵守的某些约束的一组概念.
数据模型结构和约束:
- 结构被用来定义数据库结构。
- 结构通常包括元素(及其数据类型)以及元素组(例如实体、记录、表),以及这些组之间的关系。
- 约束对有效数据指定一些限制;必须在任何时候实施这些约束
数据模型操作
- 结构被用来定义数据库结构。结构通常包括元素(及其数据类型)以及元素组(例如实体、记录、表),以及这些组之间的关系。
- 这些操作用于通过引用数据模型的构造来指定数据库检索和更新。对数据模型的操作可能包括基本的模型操作(例如通用的插入、删除、更新)和用户定义的操作(例如compute_student_gpa、update_inventory)。
数据模型的类别
- 概念性(高级、语义)数据模型:提供与许多用户感知数据的方式相近的概念。(也称为基于实体或基于对象的数据模型。)
- 物理(低级,内部)数据模型:提供描述数据如何存储在计算机中的细节的概念。这些通常通过DBMS设计和管理手册.
- 实现(具象)数据模型以特别的方式指定:提供介于以上两种之间的概念,被许多商业DBMS实现所使用(例如,在许多商业系统中使用的关系数据模型)。
- 自描述数据模型:将数据描述与数据值结合起来。例如XML, key-value。
模式与实例
- 关键区别:数据库模式很少改变。每次更新数据库时,数据库状态都会发生变化。
- 数据库架构:对数据库的描述。包括对数据库结构、数据类型和数据库约束的描述。
- 模式图:数据库模式(大多数方面)的说明性显示。
- 模式构造:模式的一个组成部分或模式中的一个对象,例如STUDENT, COURSE。
- 数据库状态:在某个特定时刻存储在数据库中的实际数据。这包括数据库中所有数据的收集。
- 也称为数据库实例(或发生或快照)。术语实例也适用于单独的数据库组件,例如,记录实例,表实例,实体实例初始数据库状态:指数据库初始加载到系统时的状态。有效状态:满足数据库结构和约束的状态
三层模式架构
- 提出了支持DBMS的特点:程序数据独立性。支持数据的多视图。
- 在三个级别定义DBMS模式:内部模式在内部级别描述物理存储结构和访问路径(例如,索引)。通常使用物理数据模型。
- 概念模式:概念级的概念模式,用来描述用户社区的整个数据库的结构和约束。
- 使用概念数据模型或实现数据模型。外部级的外部模式,用于描述各种用户视图。通常使用与概念模式相同的数据模型。
- 需要模式级别之间的映射来转换请求和数据。程序引用外部模式,并被DBMS映射到内部模式以便执行。从内部DBMS级别提取的数据被重新格式化,以匹配用户的外部视图(例如,格式化SQL查询的结果,以便在Web页面中显示)
数据独立性
- 逻辑数据独立性:改变概念模式而不必改变外部模式及其关联的应用程序的能力。
- 物理数据独立性:无需更改概念模式就可以更改内部模式的能力。
- 例如,内部模式时可能会改变某些文件结构重组或新创建的索引是提高数据库performanceWhen下级模式改变,只有这个模式和高级模式之间的映射需要更改的DBMS完全支持数据独立性。高级模式没有改变。
DBMS语言
(1)数据定义语言(DDL): DBA和数据库设计人员用来指定数据库的概念模式。
在许多dbms中,DDL还用于定义内部和外部模式(视图)。
在一些dbms中,使用单独的存储定义语言(SDL)和视图定义语言(VDL)来定义内部和外部模式。
SDL通常是通过提供给DBA和数据库设计者的DBMS命令来实现的
(2)数据操作语言(DML):用于指定数据库检索和updatesDML命令(数据子语言),可以嵌入到通用编程语言(宿主语言)中,如COBOL、C、c++或Java。
也可以提供函数库来从编程语言访问DBMS。或者,可以直接应用独立的DML命令(称为查询语言)。
DML的类型
- 高级或非过程语言:这些包括SQL关系语言是面向“设置”的,并指定要检索什么数据,而不是如何检索它。也称为声明性语言。可以以独立的方式使用,也可以嵌入到编程语言
- 中低级语言或过程语言:每次检索一个记录的数据;需要像循环这样的结构来检索多个记录,以及定位指针。这些必须嵌入到编程语言中
DBMS数据库管理系统接口
独立查询语言接口示例:
- 输入SQL查询在DBMS交互式SQL接口(例如,SQL * +在ORACLE)
- 程序员在编程接口嵌入DML languages
- User-friendly interfacesMenu-based(基于网络的),欢迎浏览webForms-based,为黑盒的用户设计用于填写entries Graphics-based Point和点击,拖拽,
- 自然语言:书面英语的请求,自由文本作为查询
结构被用来定义数据库结构。
结构通常包括元素(及其数据类型)以及元素组(例如实体、记录、表),以及这些组之间的关系。
参数化接口,例如使用功能键的银行出纳员。
DBA接口:创建用户帐户、授予权限、设置系统参数、修改模式或访问路径
DBMS的编程语言接口
在编程语言中嵌入DML的程序员接口:
- 嵌入式方法:例如嵌入式SQL(用于C, c++等),SQLJ(用于Java)
- 过程调用方法:例如JDBC用于Java, ODBC (Open Database Connectivity)用于其他编程语言,如APl(应用程序编程接口)
- 数据库编程语言方法:
- 例如,ORACLE有基于SQL的编程语言PL/SQL;语言将SQL及其数据类型集成为一个完整的组件。脚本语言:PHP(客户端脚本)和Python(服务器端脚本)用于编写数据库程序。
典型的DBMS组件模块
- 顶部部分指的是数据库环境的各种用户。
- 下面的部分显示了DBMS的内部模块,负责数据的存储和事务的处理。
Database System Utilities
执行某些功能,例如:将存储在文件中的数据加载到数据库。
包括数据转换工具。定期在磁带上备份数据库。重新组织数据库文件结构。性能监视工具。报告生成工具。其他功能,如排序、用户监控、数据压缩等。
集中,客户机-服务器数据库管理系统架构
集中式DBMS:将所有东西组合成单个系统,包括- DBMS软件、硬件、应用程序和用户界面处理软件。用户仍然可以通过远程终端连接——然而,所有的处理都是在集中的站点完成的。
客户端
通过客户端软件模块提供适当的接口来访问和利用各种服务器资源。
客户端可以是只安装了客户端软件的磁盘的无磁盘机器、pc机或工作站。通过某种形式的网络(局域网:(局域网、无线网络等)
服务器
向客户提供数据库查询和事务服务关系DBMS服务器通常被称为SQL服务器、查询服务器或事务服务器运行在客户端的应用程序利用应用程序接口(API)通过标准接口访问服务器数据库,如:ODBC(开放数据库连接标准)或JDBC——用于Java编程访问
两层客户端
客户端和服务器端必须安装适当的客户端模块和服务器模块软件,用于ODBC或JDBCA客户端程序可能连接到多个dbms,有时称为数据源。
通常,数据源可以是文件或其他管理数据的非dbms软件。
三层客户端
Web应用程序中常见的中间层,称为应用程序服务器或Web服务器:存储Web连接软件和应用程序的业务逻辑部分,用于从数据库服务器访问相应的数据。它就像一个管道,用于在数据库服务器和客户机之间发送部分处理过的数据。
三层架构可以增强安全性:数据库服务器只能通过中间层访问。客户端不能直接访问数据库服务器。客户端包含用户界面和Web浏览器。客户端通常是连接到Web的PC机或移动设备
dbms的分类
基于数据模型采用了遗留:网络、分层。
最近的技术:键值存储系统,NOSQL系统:基于文档、基于列、基于图和基于键值。原生XML dbms。其他分类单用户(通常用于个人计算机)和多用户(大多数dbms)。集中式(使用一台计算机和一个数据库)vs分布式(多台计算机,多个数据库)
我们将数据模型分为三大类:
- 高级或概念数据模型(基于实体和关系)
- 低级或物理数据模型
- 表示或实现数据模型(基于记录的,面向对象的)