首页 > 代码库 > 精通SQL结构化查询---学习笔记1
精通SQL结构化查询---学习笔记1
1、数据库体系结构的三级模式为:外模式、概念模式、内模式。
内模式又称存储模式,是对数据的物理结构和存储方式的描述。内模式是由数据库系统提供的数据定义语言定义的。
概念模式又称数据库模式,是数据库中全部数据的逻辑结构的描述。概念模式以某种数据模型为基础,并用模式定义语言定义这些内容。概念模式可以看作是现实世界中的实体在具体数据库系统中的实现。
外模式又称用户模式或子模式,通常由概念模式导出,是概念模式的子集。其主要功能是定义了允许用户操作的数据。可以将外模式理解为用户看到的数据视图。
2、一个完整的数据库系统由数据库、软件系统、硬件系统和数据库管理员4部分组成。
数据库工作流程:
DBMS并不是直接读取数据库中的数据,而是通过操作系统访问数据库,数据库系统是基于操作系统的。
3、数据库的发展可以划分为三代:
第一代为网状模型和层次模型,都是格式化的模型。
第二代为关系模型。
第三代是以更丰富的数据模型和更强大的数据管理能力为特征,如面向对象数据模型。
关系数据库
4.1、关系模型把世界看作是由实体和联系构成的。关系模型中实体通常以表的形式来表现的,表的每一行藐视实体的一个实例,表的每一列描述实体的一个特征或属性。
4.2、范式:
目前数据库有6中范式,任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库;第一范式简而言之就是无重复的列。
第二范式(2NF)实在第一范式的基础上建立起来的,第二范式简而言之就是每一行或每个实例必须是唯一的。
第三范式(3NF)必须先满足第二范式,简而言之第三范式要求一个数据库表中不包含已在其他表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号DEPT_ID、部门名称、部门简介等信息。那么在员工信息表中列出部门编号DEPT_ID后,就不能再将部门名称、部门简介等与部门有关信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。
SQL语言的组成
5.1、数据定义语言(DDL)主要用于创建、修改和删除数据库对象;相关SQL关键字包括CREATE、ALTER和DROP。
5.2、数据查询语言(DQL)主要用于数据的检索查询;相关SQL关键字为SELECT。
5.3、数据操纵语言(DML)主要用于添加、修改或删除存储在数据库对象中的数据。与其相关的主要SQL关键字包括INSERT、UPDATE和DELETE。
5.4、数据控制语言(DCL),可以控制访问数据库中特定对象的用户,还可以控制用户对数据库的访问类型;与其相关的主要SQL关键字包括GRANT(授予用户访问权)、DENY(拒绝用户访问)和REVOKE(解除用户访问权)。
6、Transact-SQL
Transact-SQL是ANSI SQL的加强版语言,提供了标准的SQL命令,另外还对SQL命令做了许多扩充,提供类似BASID、Pascal、C等第三代语言的基本功能,如变量说明、程序流程控制语言、功能函数等。由多种应用程序生成,包括以下几种。
通用办公生产应用程序。
使用图形用户界面(GUI)应用程序,使用户得以选择包含要查看的数据的表和列。
将其数据存储于SQLServer数据库中的商用应用程序,这些应用程序既可以是来自其他成商的应用程序,也可以是内部编写的应用程序。
由开发系统,如VisualC++、Visual Basic或Visual J++等,使用数据库应用程序接口(API),如ADO、OLE DB以及ODBC等创建的应用程序。
Transact-SQL的主要组成
数据定义语言(DDL)
数据操纵语言(DML)
数据控制语言(DCL)
系统存储过程(System StoredProdedure)
一些附加的语言元素。
7、Oracle数据库
7.1、Oracle数据库组成结构
SQL*Plus是一个交互式运行SQL语句的平台。用户在此环境下,可以像执行DOS命令一样执行SQL语句,系统会将语句执行结果显示在屏幕上。
Pro*C预编译接口可以将嵌有SQL语句的C语言进行预处理,并将其变为纯C语言,按一般C程序去处理。
OCI子程序调用接口提供一个访问数据库的函数库,C程序通过调用它们实现了对数据库的访问。这些函数对于C程序是合法的语法成分,因此不需要预编译。
Developer2000是Oracle提供的基于图形界面的快速开发工具,适用于开发表格、菜单、统计图和报表等典型业务程序。
SQL*Forms等一组工具基于DOS和字符终端的产品。
7.2、Oracle系统采用客户端/服务器体系结构。
7.3、Oracle系统中,一个数据库的存储空间被划分成一个或多个逻辑区域,称为表空间,每个表空间由一个或多个数据文件组成,一个数据文件只能与一个表空间相联系。每个Oracle数据库与一个Oracle实例相联系。Oracle数据库在服务器上被启动时,系统分配一个内存区域----系统全局区(SGA),并启动相关的Oracle进程。一个Oracle实例是由SGA和Oracle进程组成;从进程的观点看,用户是利用用户进程及Oracle进程来访问Oracle数据库的。
精通SQL结构化查询---学习笔记1