`
universsky
  • 浏览: 92541 次
文章分类
社区版块
存档分类
最新评论

数据库系统(Database System)原理

 
阅读更多
数据库原理

数据库系统(Database System)是用于组织和存取大量数据的管理系统,方便多

用户使用计算机软、硬件资源组成的系统。它与文件系统的重要区别是数据的充

分共享、交叉访问以及与应用(程序)的高度独立性。

数据库系统由计算机系统、数据库、数据库描述、数据库管理系统、数据库应用

程序和用户组成。

1、计算机系统?

计算机系统指的是用于数据库管理的计算机硬件资源和基本软件资源。硬件资源包括CPU、大容量内存(用于存放操作系统,数据库管理系统、应用程序、数据库等)、直接存取的外部存储设备(硬盘)。软件资源包括操作系统和应用程序。

2、什么是数据库(1)?

l数据库是提供数据的基地。它能保存数据并让用户从它这里访问有用的数据。
l数据库中的业务数据是以一定的组织方式存储在一起的相互有关的数据整体。数据库中保存的数据是相关数据,是一种相对稳定的中间数据。为了便于管理和处理这些数据,将这些数据存入数据库时必须具有一定的数据结构和文件组织形式(顺序文件、索引文件)。

3、什么是数据库管理系统?

lDBMS是Data Base Management System 的缩写。它包括面向用户的接口功能和面向系统的维护功能两大方面。前者为用户存取数据库提供必要的手段,包括处理能力。后者为数据库管理者提供数据库的维护工具。具体为数据库定义,数据装入,数据库操作、控制、监督、维护、恢复、通信等。DBMS通常由三部分组成:数据库描述语言(DLL)、数据操纵(DML)或查询程序、数据库管理例行程序。

4、应用程序和用户

l数据库管理员(DBA):是系统工作人员,负责对整个数据库系统进行维护。
l应用程序员:是后台专业用户,对数据库进行检索、插入、删除或更新等操作。
l非程序员:是终端用户,通过联机终端设备,由基本命令组成的询问语言对数据库进行检索、插入、删除或更新等操作。例如话务员,管理员,质检员。
l总之,信息的集合是数据库,而DBMS的软件可用于完成信息的存储和检索。

5、数据库系统的特点

l数据冗余度小,易扩充
l具有较高的数据和程序的独立性
l统一的数据控制能力
Ø数据的安全性控制
Ø 数据的完整性控制
Ø 并发控制
l数据库模型的基本概念

数据模型是数据库系统的核心,是对客观事物及其联系的数据的描述,即实体模型的数据化。数据模型是表示实体与实体之间联系的模型。当前流行的数据模型有关系、层次、网状三种模型。

1、什么是关系数据模型

这种模型是新的DBMS,将数据简单地表示为一个或多个表格的内容。其是由表格形式体现,这种“表”在数学上称为关系。表中的每一行称为记录,每个记录由若干字段组成,一个记录描述一个事物,它的各字段是该事物各种性质的描述,在关系数据库中这些字段称为属性

Table

l关系型数据库是由一个或多个表的信息集合
l表是一系列有规律的数据以行和列形式组成的
l层次型数据库

也称树状模型,是一个以记录类型为节点的有根的定向树。层次数据模型的特点为:有且仅有一个实体,向上不与任何实体联系称为根;有若干实体,向下不与任何实体联系称为叶,其余的实体向下可以与若干实体联系,但向上只与唯一的一个实体联系(一对多联系),称为中间节点。所有节点都处在某一层上。根节点在最高层,即第一层。同一层上的节点之间没有联系。具有这些特点的数据结构称为层次结构。例如大学行政组织结构,如图1-1所示。典型例子是IBM的IMS。

l网状型数据库
l网状模型是以记录类型为节点网状结构,网状与树(层次结构)的区别主要有如下两点:
Ø一个子节点可以有两个或多个父节点
Ø在两个节点之间可以有两种或多种关系 ;
l在网络模型中用“系”表示这种关系,所谓系是一个二级树,它的根节点称为主节点,它的叶称为从节点。学生选课实体模型是网络数据模型如图。其数据库的直接用户是程序员,访问存储信息的方法是通过特殊的来自程序设计语言的调用,进行简单的特定查询,通常很困难。如图下页所示。

动态服务器系统由三个主要组件构成:共享内存进程磁盘

共享内存包括三个段:驻留段、虚拟段和消息段。驻留段主要用做磁盘数据的缓存。虚拟段主要用做内存池以支持进程及相关的会话(session)和线程。当客户与服务器利用共享内存进行通讯时,消息段将用做两者之间的消息缓冲区。

系统中还包括若干构成数据库服务器的UNIX进程,称为oninit。这些进程被称为虚处理器(VP,Virtual Processors)。每一个VP隶属于某一虚处理器类。而每一虚处理器类都负责完成一类特定的任务。

INFORMIX动态服务器采用的是一种多线程体系结构。这就意味着一个进程利用自己的多个线程可以同时完成多个任务,因而整个系统只需较少的进程就足以完成DBMS任务。

系统的磁盘组件由多个原始磁盘空间组成,称为chunk。Chunk以页(page)为基本单位。多个chunk集合逻辑上构成了数据空间(dbspace)。数据空间用于存储数据库、表、根以及物理日志和逻辑日志。一个数据空间至少包括一个chunk。

•分配给系统使用的连续磁盘空间的单位称为chunk。chunk由多个页构成。它是一个典型的UNIX原始设备。chunk的大小由管理员设定。
•数据空间(dbspace)是多个chunk的逻辑集合。每一数据空间至少包括一个chunk。数据库和表创建在指定的数据空间上。系统必须至少包括一个数据空间:root dbspace。在该空间中存储着所有关于系统的信息。
•物理日志(physical log)由连续的磁盘空间构成,其存储着共享内存缓冲区中所有已修改的数据页的(但尚未写入磁盘中)被修改前的映象。因而物理日志主要用于快速恢复。只有当数据页在首次被修改时,系统才会将其映象写入物理日志。
•逻辑日志(logical logs) 也时由连续的磁盘空间构成,其存储着事务记录、DDL语句和checkpoint记录。由管理员设定逻辑日志的数目。系统循环使用逻辑日志文件。在系统初启时,物理日志和逻辑日志都自动建立在root dbspace上。
lSQL是 Strutcture Query Language 的缩写。
lSQL语言是IBM公司于1970年开发出来的。
lSQL语言提供四种类型的语言:
l数据定义语言
[ Create table ,Create Database 等;
l数据授权语言
[ Grant,Revoke 等;
l数据操作语言
[Insert into,Update,Delete from 等;
l数据查询语言
[ Select from 等;

创建数据库的SQL语句格式:

CREATE DATABASE <DatabaseName>

[IN <DBSpaceName>]

[WITH <[BUFFERED] LOG | LOG MODE ANSI>]

Create table <TableName>

(

FieldName DataType [Default <>] [NOT NULL],

.............

)

[WITH NO LOG]

[IN <DBSpaceName>]

数字类型

整数: INTEGER 和 SMALLINT

自动序数: SERIAL

实数: FLOAT , SMALLFLOAT,DECIMAL(p),DECIMAL

货币:MONEY

例如:

CREATE TABLE pps_tab

( msisdn INTEGER,

subid SERIAL,

balance MONEY,

..............

)

时间类型:

DATE :日期型.

DATETIME :日期型,精确到秒.

INTERVAL :时间差;

布尔类型:

true 和false

CREATE TABLE pps_tab

( .......,

service start DATETIME,

IsOneTwoCall BOOLEAN,

..............

)

u字符类型:
uCHAR(n) : 包含指定长度的字符串.
uBYTE: 二进制
uNULL: 空
u系统变量:
Ø USER
Ø CURRENT
Ø TODAY
Ø DBSERVERNAME

l使用SELECT语句查询数据的语法:
[1.select 要查询的字段
[2.from 要查询的表名
[3.where 要查询的条件
[4.group by 按条件分组
5.order by 按条件排序

The where clause (optional) specifies which data values or rows will be returned or displayed, based on the criteria described after the keyword where.

Conditional selections used in where clause:

= Equal
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to
<> Not equal to
LIKE *See note below

All Informix database servers support the following aggregate functions:

q AVG
q COUNT
q MAX
q MIN
q RANGE
q STDEV
q SUM
q VARIANCE

Example 1:

INSERT INTO stock

VALUES (115, 'PRC', 'tire pump', 108, 'box', '6/box')

Example 2:

INSERT INTO stock (stock_num,description,unit_price,manu_code)

VALUES (115,'tyre pump',114,'SHM')

Example 1:

INSERT INTO cust_calls (customer_num, call_descr)

SELECT customer_num, order_num FROM orders

WHERE paid_date IS NOT NULL

AND ship_date IS NULL

Example 1:

UPDATE customer

SET fname = 'Barnaby', lname = 'Dorfler'

WHERE customer_num = 103

Example 1:

UPDATE customer

SET (address1, address2, city, state, zipcode) =

((SELECT address1, address2, city, state, zipcode FROM newaddr

WHERE newaddr.customer_num=customer.customer_num))

WHERE customer_num IN (SELECT customer_num FROM newaddr)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics