数据库期末复习一
数据库和数据系统
-
数据库系统(DBS)是一个计算机应用系统,它把有关的计算机硬件、软件、 数据和人员组合起来为用户提供数据管理服务。
-
数据库(DB):计算机中存放的数据集合。
- 数据库管系统(DBMS):管理数据库的系统软件,是数据库系统的核心。DBMS举例:SQL Server, Oracle, MySQL, DB2……
-
数据库管理员(DBA):负责数据库的规划、设计、协调、维护和管理等工作。
-
应用程序(例如MIS):以数据库为基础的应用程序。
注意:
数据库系统的核心是数据库管理系统
,在上述的几个优势中,都是数据库管理系统(DBMS)发挥着核心作用。所以数据库管理系统是核心的、基础的软件,在软件领域具有重要地位**。**
数据模型
数据模型是数据的抽象表示工具,在不同阶段用不同模型来表示数据。用概念模型
描述现实世界中的事物及其联系。用逻辑模型
描述数据的结构和操作方式。用物理模型
表示数据在计算机上的存储方式。
概念模型
独立于计算机系统,只描述某个特定组织所关心的信息结构,是按用户的观点对数据和信息建模,用于数据库设计,是数据库设计人员和用户之间进行交流的工具(实体-联系模型)。逻辑模型
是直接面向数据库的逻辑结构的,用一组严格定义的、无二义性的语法和语义的数据库语言来定义、操纵数据库中的数据。应用程序是基于逻辑模型编程的,每种DBMS都支持一种逻辑模型。- 物理模型是对数据最底层的抽象,描述数据在磁盘或磁带上的存储方式和存储方法。
数据库三级模式两级映射
数据库三级模式
-
内模式(存储模式)
是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
一个数据库只有一个内模式。
-
模式(整体逻辑模式)
用于描述数据库的整体逻辑结构。不涉及数据的物理存储结构和硬件环境,也不涉及具体的应用程序。一个数据库只有一个模式。
-
外模式(用户模式)
是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的结构。一个数据库可以有多个外模式,如果不同的用户在应用需求上存在差异,则其外模式就是不同的。同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式。
数据库两级映射
-
外模式/模式映射
- 特征:对于每一个外模式,数据库系统都有一个外模式/模式映射,它定义了该外模式与模式之间的对应关系。
- 作用:保证数据的逻辑独立性
-
模式/内模式映射
- 特征:模式/内模式映象定义了数据整体逻辑结构与存储结构之间的对应关系。
- 作用:保证数据的物理独立性
概念模型
概念模型是对现实世界的抽象,通过抽象得到信息实体及实体集之间的联系,所以概念模型也称为实体-联系模型。
基本概念
- 实体:可以相互区分的事物。
- 实体集:同类实体的集合。
- 联系:实体集之间的相互关联。
- 属性和值域:属性是实体(或联系)所具有的特征,值域是属性的取值范围。
- 型和值。型是实体或联系的结构描述,值是一组属性值的组合。
- 候选码:候选码是在一个实体集(或联系集)中可以用于区分不同实体(或联系)的单个属性或若干属性的组合。
- 主码:当一个实体集中有多个候选码,可以选定其中的一个作为主码。
数据库建立与管理
- 建库
CREATE DATABASE 数据库名
[ON
[<filespec>[,...n]]
[,<filegroup>[,...n]]
]
[LOG ON {<filespec>[,...n]}]
[FOR ATTACH] --表示将一个已经存在的数据文件附加为一个数据库
- 修改库
ALTER DATABASE 使用据库名
{ ADD FILE <filespec> [,...n] [TO FILEGROUP filegroup_name]
|REMOVE FILE logical_file_name
|MODIFY FILE <filespec>
|ADD LOG FILE <filespec> [,...n]
|ADD FILEGROUP filegroup_name
|REMOVE FILEGROUP filegroup_name
|MODIFY FILEGROUP filegroup_name
{filegroup_property|NAME=new_filegroup_name}
|MODIFY NAME=new_dbname
|SET <optionspec> [,...n]
}
- 分离数据库
exec sp_detach_db 数据库名
表管理
sqlserver常用数据类型
-
整数型
- 整数:tinyint, smallint, int, bigint 范围从小到大
- 精确数:decimal, numeric 由整数和小数两部分组成(decimal(4,1)表示3位整数一位小数 000.0 numeric和decimal相同)
- 浮点数:float, real 近似值,通常用于存放较大的数
- 货币数据类型:smallmoney, money
-
字符型
- 固定长度字符串:char,nchar
- 可变长度字符串:varchar,nvarchar
-
日期时间型
- Date:3字节,只存放日期
- Time:5字节,只存放时间
- Datetime:8字节,日期范围:1753/1/1~9999/12/31,时间精确到毫秒
- Smalldatetime:4字节,日期范围:1900/1/1~2079/12/31,时间精确到分。
-
逻辑(位)型
- bit, 输入值0和空表示false,1或非0的数都表示真。
-
文本型
- Text,ntext。分别对应ANSI和Unicode字符,可存储231个字节,突破字符型8000个字节的存储限制。用于存放大量的字符数据。
创建表语句示例
create table [表名]
(
[自动编号字段] int IDENTITY (1,1)/*自增*/ PRIMARY KEY/*设置主键*/ ,
[字段1] nVarChar(50) default \'默认值\' null ,
[字段2] ntext null ,
[字段3] datetime,
[字段4] money null ,
[字段5] int default 0,
[字段6] Decimal (12,4) default 0,
)
表的增删改查
- 增
Insert Into 表 (列1,列2,…, 列n)
Values (值1,值2,…, 值n)
- 改
UPDATE 表
SET 列1=值1,列2=值2,…, 列n=值n
WHERE 查询条件
- 删
DELETE FROM 表
WHERE 查询条件