数据库系统(Database System)是用于组织和存取大量数据的管理系统,方便多
用户使用计算机软、硬件资源组成的系统。它与文件系统的重要区别是数据的充
分共享、交叉访问以及与应用(程序)的高度独立性。
数据库系统由计算机系统、数据库、数据库描述、数据库管理系统、数据库应用
程序和用户组成。
1、计算机系统?
计算机系统指的是用于数据库管理的计算机硬件资源和基本软件资源。硬件资源包括CPU、大容量内存(用于存放操作系统,数据库管理系统、应用程序、数据库等)、直接存取的外部存储设备(硬盘)。软件资源包括操作系统和应用程序。
2、什么是数据库(1)?
3、什么是数据库管理系统?
4、应用程序和用户
5、数据库系统的特点
数据模型是数据库系统的核心,是对客观事物及其联系的数据的描述,即实体模型的数据化。数据模型是表示实体与实体之间联系的模型。当前流行的数据模型有关系、层次、网状三种模型。
1、什么是关系数据模型
Table
也称树状模型,是一个以记录类型为节点的有根的定向树。层次数据模型的特点为:有且仅有一个实体,向上不与任何实体联系称为根;有若干实体,向下不与任何实体联系称为叶,其余的实体向下可以与若干实体联系,但向上只与唯一的一个实体联系(一对多联系),称为中间节点。所有节点都处在某一层上。根节点在最高层,即第一层。同一层上的节点之间没有联系。具有这些特点的数据结构称为层次结构。例如大学行政组织结构,如图1-1所示。典型例子是IBM的IMS。
动态服务器系统由三个主要组件构成:共享内存、进程和磁盘。
共享内存包括三个段:驻留段、虚拟段和消息段。驻留段主要用做磁盘数据的缓存。虚拟段主要用做内存池以支持进程及相关的会话(session)和线程。当客户与服务器利用共享内存进行通讯时,消息段将用做两者之间的消息缓冲区。
系统中还包括若干构成数据库服务器的UNIX进程,称为oninit。这些进程被称为虚处理器(VP,Virtual Processors)。每一个VP隶属于某一虚处理器类。而每一虚处理器类都负责完成一类特定的任务。
INFORMIX动态服务器采用的是一种多线程体系结构。这就意味着一个进程利用自己的多个线程可以同时完成多个任务,因而整个系统只需较少的进程就足以完成DBMS任务。
系统的磁盘组件由多个原始磁盘空间组成,称为chunk。Chunk以页(page)为基本单位。多个chunk集合逻辑上构成了数据空间(dbspace)。数据空间用于存储数据库、表、根以及物理日志和逻辑日志。一个数据空间至少包括一个chunk。
创建数据库的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,
..............
)
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:
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)