SQL server数据库基础
一 数据库简介
1数据库的基本概念
1)数据
·描述事物的符号记录称为数据(Data),包括数字、文字、图像、声音等。以"记录"的形式按统一格式进行存储,相同格式和类型的数据存放在一起。如图中存储的一行数据,在数据库中叫做一条"记录";每条记录中的每一个输入项叫做"列",其中ID、名字、性别等为列名
2)数据库和数据库表
A)表(Table)
·用来存储具体数据。不同记录组织在一起,就形成了数据库的"表"
B)数据库(DB,Database)
·是"数据"的"仓库"、是表的集合。描述数据之间的关系
3)数据库系统和数据库管理系统
A)数据库管理系统(DBMS,Datebase Management System)
·实现对数据库资源有效组织、管理和存取的系统软件、与其他软件通信
B)数据库系统(DBS,Datebase System)
·人—机系统;由硬件、操作系统、数据库、DBMS、应用软件和用户组成用户通过DBMS或应用程序操作数据库
C)数据库管理员(DBA,Datebase Administrator)
·负责数据库的更新和备份、数据库系统的维护等工作
4)使用数据库的必要性
A)为什么使用数据库
·海量数据的存储、提供高效访问、传统方法无法满足需求、……
B)数据库的特点
·结构化存储数据、保持数据的一致性、完整性,降低冗余、满足数据共享和安全要求
2数据库的发展史
1)DBMS发展史
A)第一代数据库(初级阶段)
·基于层次模型与网状模型的数据库,如信息管理系统(IMS)
B)第二代数据库(中级阶段)
·关系数据库,如DB2、Oracle、SQL Server
C)第三代数据库(高级阶段)
·面向不同领域的新型数据库、面向对象数据库、"关系—对象"数据库,如Oracle
2)DBMS发展中的经典数据模型
·数据模型是数据库系统的核心与基础、表现数据的结构、定义数据操作以及约束条件,包含数据结构、数据操作和数据约束
A)网状模型
数据结构
·数据记录组织成图的形式,使用"数据结构图"做抽象的分析和表示
·适合表达复杂的数据关系的实现
·能直观反映现实中数据之间的联系
数据操作
·建立在关系链基础上的导航式操作
·以图论为基础,无法得到一个通用、高效的解决方案
数据约束
·零散孤立,或分散在各个节点,或集中成为一种关系链
·容易导致数据的不一致性或降低效率
·由应用程序自身实现数据约束
B)层次模型
数据结构
·使用"树结构图"做抽象的分析和表示
·适合一对多的关系模型
·禁止了多对多和多对一的关系
数据操作
·结构相对简单,提高数据查询效率
·数据存取需要导航性,依然复杂
数据约束
·禁止多对一和多对多,降低复杂度
·多数还需靠应用程序本身实现
C)关系模型
数据结构
·使用"实体—关系"(E-R)图直接表示
·E-R图中包含了实体、关系和属性三个要素
·实体:即数据对象,对应现实世界中的"事物"
·实体集:具有相同性质的实体集合
·属性:实体具有的某一特性
·联系:实体集之间的对应关系
数据操作
·使用数据库操作语言(DML)
·结构化查询语言(SQL)
·直接面向结果,简化了操作步骤
数据约束
·可以针对实体、属性和关系
·使用数据定义语言(DDL)
·容易实现,效率不高
3主流数据库介绍
1)SQL server
·微软公司产品、面向Windows操作系统、包含多个版本、简单、易用
2)Oracle
·Oracle(甲骨文)公司产品、面向所有主流平台、安全、完善,操作复杂
3)BD2
·IBM公司产品、面向所有主流平台、大型、安全、完善
二 关系数据库的基本概念
·关系数据库系统是基于关系模型的数据库系统,是关系模型应用到数据库领域的实例化
1 关系数据库的基本结构
关系数据库是由数据表之间的关联组成
数据表:是一个由行和列组成的二维表
行:又叫记录或元祖,代表众多具有相同属性的对象中的一个
列:又叫字段或属性,代表相应存储对象的属性
2 主键与外键
1)主键(Primary Key)
·通过定义主键可以保证实体的唯一性、一个主键值对应一行数据、由一个或多个字段组成,其值具有唯一性、不允许取空值(NULL)、一个表只能有一个主键
2)候选键
·能唯一标识表的一行而又不含有多余属性的属性集、表中可以有多个候选键、只能有一个候选键可以选作表的主键
3)外键(Foreign Key)
·通过外键可以将多个表关联起来、将表中主键值的列添加到另一个表中,这个列就称为第二个表的外键
3 数据完整性规则
·为了维护数据库中的数据与现实世界的一致性,它是应防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。关系数据库的数据与更新操作必须遵守下列四类完整性规则
1)实体完整性
·将行定义为特定表的唯一性
·通过主键的约束,强制表的标示符列或主键的完整性;要求主键对应的属性不能取空值
2)域完整性
·指定某一列的值是否有效和是否允许为空值
·如定义字段"性别"只能取值"男"或"女",不能出现"male"或"female"等值;及限制格式或限制可能值的范围
3)引用完整性
·如果两个表相互关联,不允许引用不存在的元组
4)用户定义的完整性
·针对某一具体数据的约束条件,由应用环境决定