数据库基本概念
1. 数据库的存储方式
计算机数据一般为硬盘存储,在 数据处理时,采用数据库的相关技术。
作用:提高了数据的存储效率;
提高了数据的安全性;
2. 数据库是什么
由一批数据构成的有序集合—存放在结构化的数据表中
数据表之间相互关联,反应客观事物的本质联系
3. 数据库的存储结构
是指:数据库中的物理数据和逻辑数据的表现形式、物理数据和逻辑数据之间关系映射方式的描述。
两种形式:物理数据描述、逻辑数据描述
二者之间通过数据库系统管理实现转换
物理数据描述:
- 位(bit):二进制的一个单位为位,只能取1或0;
- 字节(byte):8个位为一个字节,可以存放对应ASCII码的一个字符。
- 字(word):若干字节为一个字,一个组所含的二进制的位数为字长。8位,16位等
- 块(block): 物理块/物理记录:内存储器和外存储器交换信息的最小单位;256字节、512字节等
- 卷(volume) :一台输入输出设备所能装载的全部有用的信息
- 无序存储(unordered):数据记录按照插入的顺序存储
逻辑数据的描述
层次一:对客观显示信息世界的描述
层次二:对数据库管理系统中数据的描述
层次一:术语
- 实体(entity):客观现实存在,可有形可无形
- 实体集(entities):特性完全相同的实体的集合
- 属性(attribute):实体的特性:
- 标识符(identifier):能够唯一地标识每个实体的属性或属性集
层次二:
- 数据项(data item):也称为字段(field),标记实体属性的可以命名的最小信息单位,数据项的命名一般采用属性的描述性名称。这些名称可以是中文、英文或汉语拼音。
- 元组(tuple)://记录(record),数据项的集合称为元组。一个元组表示一个具体的实体。
- 关系(relation):同一类元组所在的集合称为关系。关系–描述实体集,它包括一个实体集的所有元组。
- 键码(key):在关系型数据库系统中,能够唯一地标识关系中每个元组的数据项或数据项的组合称为关系的键码。
4. 数据库在开发中的作用
常见的运行与应用结构:
- 客户端/服务器结构
- 浏览器/服务器结构
在客户端/服务器(Client/Server,C/S)结构中,数据库的使用者(如
DBA、程序设计者)通过命令行客户端、图形化界面管理工具或应用程序等连接到数据库管理系统,可以通过数据库管理系统查询和处理存储在底层数据库中的各种数据。
对于客户端应用程序的开发,目前常用的语言工具主要有 Visual C++、Delphi、.NET 框架、Visual
Basic、Python 等。
5. 数据库管理系统(Database Management System,DBMS)
是位于操作系统与用户之间的一种操纵和管理数据库的软件,按照一定的数据模型科学地组织和存储数据,同时可以提供数据高效地获取和维护。
DBMS的主要功能包括以下几个方面。 1) 数据定义功能 DBMS 提供数据定义语言(Data Definition
Language,DDL),用户通过它可以方便地对数据库中的数据对象进行定义。 2) 数据操纵功能 DBMS 还提供数据操纵语言(Data
Manipulation Language,DML),用户可以使用 DML 操作数据,实现对数据库的基本操作,如查询、插入、删除和修改等。
3) 数据库的运行管理
数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制,以保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复。例如:
- 数据的完整性检查功能保证用户输入的数据应满足相应的约束条件;
- 数据库的安全保护功能保证只有赋予权限的用户才能访问数据库中的数据;
- 数据库的并发控制功能使多个用户可以在同一时刻并发地访问数据库的数据;
- 数据库系统的故障恢复功能使数据库运行出现故障时可以进行数据库恢复,以保证数据库可靠地运行。 4) 提供方便、有效地存取数据库信息的接口和工具 编程人员可通过编程语言与数据库之间的接口进行数据库应用程序的开发。数据库管理员(Database
Administrator,DBA)可通过提供的工具对数据库
进行管理。
- 数据库的建立和维护功能
数据库功能包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监控、分析功能等。这些功能通常由一些使用程序来完成。数据库系统是指在计算机系统中引入数据库后的系统。一个完整的数据库系统(Database
System,DBS)一般由数据库、数据库管理系统、应用开发工具、应用系统、数据库管理员和用户组成。
6. 结构化查询语言(Structured Query Language,SQL)
SQL具有如下优点。
- 一体化:SQL集数据定义、数据操作和数据控制于一体,可以完成数据库中的全部工作。
- 使用方式灵活:SQL具有两种使用方式,可以直接以命令方式交互使用;也可以嵌入使用,嵌入C、C++、Fortran、COBOL、Java等语言中使用。
- 非过程化:只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。
- 语言简洁、语法简单、好学好用:在ANSI标准中,只包含94个英文单词,核心功能只用6个动词,语法接近英语口语。
注意:SQL 语句不区分大小写,许多 SQL 开发人员习惯对 SQL
本身的关键字进行大写,而对表或者列的名称使用小写,这样可以提高代码的可阅读性和可维护性。本教程也按照这种方式组织 SQL
语句。大多数数据库都支持通用的 SQL 语句,同时不同的数据库具有各自特有的 SQL 语言特性。
7. 数据库访问技术
数据库访问技术包括 ODBC、DAO、OLE DB 和 ADO。
- ODBC
ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(Windows Open Services Architecture,WOSA)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准 API(应用程序编程接口)。这些 API 利用 SQL 来完成其大部分任务。
ODBC 本身也提供了对 SQL 语言的支持,用户可以直接将 SQL 语句送给 ODBC。 - DAO
DAO(Data Access Object,数据访问对象集)是 Microsoft 提供的基于一个数据库对象集合的访问技术,可以独立于 DBMS 进行数据库的访问。 - OLE DB
OLE DB(Object Linking and Embedding Database,对象连接与嵌入)是微软战略性的通向不同数据源的低级应用程序接口。OLE DB 不仅包括微软资助的标准数据接口,开放数据库连通性(ODBC)的结构化查询语言(SQL)能力,还具有面向其他非 SQL 数据类型的通路。
作为微软的组件对象模型(COM)的一种设计,OLE DB 是一组读写数据的方法(在过去可能称为渠道)。OLD DB 中的对象主要包括数据源对象、阶段对象、命令对象和行组对象。 - ADO
ADO(ActiveX Data Objects)是一个用于存取数据源的 COM 组件,提供了编程语言和统一数据访问方式 OLE DB 的一个中间层,允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,只用关心到数据库的连接。
8. MySQL 数据库管理系统具有以下系统特性:
- 使用 C 和 C++ 编写,并使用多种编译器进行测试,保证源代码的可移植性。
- 支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2
Wrap、Solaris、Windows 等多种操作系统。 - 为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl
等。 - 支持多线程,充分利用 CPU 资源。
- 优化的 SQL 查询算法,有效地提高查询速度。
- 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入其他的软件中。
- 提供多语言支持,常见的编码如中文的 GB 2312、BIG 5,日文的 Shift_JIS 等都可以用作数据表名和数据列名。
- 提供 TCP/IP、ODBC 和 JDBC 等多种数据库连接途径。
- 提供用于管理、检查、优化数据库操作的管理工具。
- 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
- 支持多种存储引擎。