阅读信息
769 字 2 分钟 本页总访问量 加载中...
Lec1 Introduction
数据库定义
什么是数据库?
- 数据库:长期存储在计算机内的、大量的、集成的数据集合
- 数据库管理系统(DBMS,Database Manage System):数据库+用于访问、更新、管理数据的程序
数据库有什么优势?
- 高效管理大量数据,可扩展性
- 减少开发应用所需的时间
- 数据独立性:物理存储方式改变、数据库的逻辑结构改变,上层应用不用改
- 数据集成、安全性
- 并发性、鲁棒性
和数据库系统相对的是文件系统(File-processing system)。文件系统有更高的权限,文件间彼此独立。
文件系统有什么缺点?(为什么还要数据库系统?)
- 有大量冗余和不一致数据:不同文件中数据重复,冗余可能导致不一致
- 访问数据困难:访问逻辑写死在程序里。每个新需求都要改代码
- 数据独立,难以修改和共享
- 完整性问题:数据有约束规则时,需要不同文件各自检查
- 原子性问题:一组操作要么全做完,要么全不做,不能只做一半(如转账),在故障时难以避免“部分完成”的错误状态
- 并发性差:多个用户同时访问同一个文件
- 权限管理
数据库概念
模式 (Schema)指数据库的结构定义,比如有哪些表、字段、数据类型、约束、关系。类似表的表头。
实例 (Instance)指数据库里实际存储的数据内容。
对不同的操作,需要不同层面看待数据库:
- 物理层面(内模式):文件格式、存储位置等
- 逻辑层面(模式):表增加字段、拆表、合并表等
- 视图层面(外模式):给不同用户开放的窗口
物理数据独立性和逻辑数据独立性分别通过模式/内模式映象、外模式/模式映象实现。
数据模型指描述数据、数据关系、限制等的概念工具。
- E-R模型:从现实世界中抽象出实体和实体间的关系,画成图
- 关系模型:一组用于表示数据和数据之间的关系的表格
数据库语言
数据库语言指用于定义和处理数据库的语言,包括:
- 数据定义语言 (DDL, Data Definition Language):用于定义和管理数据库模式,如CREATE、ALTER。DDL编译后存在被称为数据字典的文件中。数据字典中包含元数据,如数据库模式、约束、授权等。
- 数据操纵语言 (DML, Data Manipulation Language):用于对表中的数据进行增删改查,如INSERT、SELECT。分为过程型DML(告诉它怎么做)和非过程型DML(告诉它做什么)。
- 数据控制语言 (DCL, Data Control Languag):用于权限和访问控制,如GRANT、REVOKE。
SQL(Structured Query Language)是最主流的关系数据库标准语言,由上面三部分构成。
应用程序 (application program) 依靠嵌入式SQL查询来访问数据库内的数据。一般,应用程序通过API向数据库发送DML和DDL语句,JDBC为Java的API,ODBC为C和其他语言的API。