您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据结构与算法 > 第1章 数据库系统概念及SQL SERVER基本操作
第1章数据库系统概念及SQLSERVER基本操作1.1数据库系统介绍1.1.1数据(Data)数据是信息在计算机中的数字表示。首先,一些基本信息需要在计算机中表示,如一个整数,一个浮点数,一个字符等这样的基本信息,在计算机里,只有类似于0101的这种二进制数据,要想表达形如整数、浮点数,就需要采用编码的技术来表示这些种类的数据。有很多种编码方式(如ASCII、Unicode等)可以将这些基本信息编码成计算机能够识别的类似于0101的这种二进制数据。例如,通过ASCII编码可以在计算机中用01000001(8bit,1byte)来表示字符‘A’,对这些基本信息的编码,是由计算机系统软件也就是操作系统来完成的。其次,人们需要用这些基本的信息来描述大千世界中形形色色的更加复杂的信息(如要描述一个学生的信息),此时可以用这些基本的信息单元进行组合,以达到表达更加复杂信息的要求。例如要描述一个学生的基本信息,可以采用如下几个基本单元来表示(姓名,性别,出生年月,身高,等),这几个基本单元的数据如下:(”张三”,”男”,”1975-1-1”,175)。1.1.2数据库(Database)数据库,顾名思义就是数据存储的仓库,就是将数据按照某种方式组织起来并存储在计算机中,方便用户的使用。在这一点上数据库与普通的仓库是类似的,只不过存储的方式及使用的方式不一样。数据库是用来组织和管理数据的一个逻辑单位。1.1.3数据库管理系统(DBMS)如何科学地组织和存储数据,高效地获取和维护数据,这些任务需要由一个专门的系统软件来完成,这个系统软件就是数据库管理系统(DBMS)。也就是说数据库管理系统是一套专门组织管理数据的软件。我们平时所说的SQLServer、Oracle、DB2就是这样的系统软件。1.数据库管理系统分类就目前而言,市面上的数据库管理系统很多,以下就不同的侧面对其进行分类:(1)根据数据组织与存储的方式分A.关系式数据库管理系统SQLServer、Oralce、Db2、SybaseSqlServer、Informix、MySql等B.非关系式数据库管理系统(其中也包括最近提得比较多的面向对象数据库系统)Lotus/Domino、ExChange等(在此还需要补充一些面向对象的数据库例子)(2)根据数据管理的能力及规模分A.大型数据库系统SqlServer企业版、Oralce、Db2、SybaseSQLServerB.桌面数据库系统Access、SqlServer桌面版、FoxproC.移动数据库系统(主要应用于PDA、手机及一些移动设备上的数据库系统)SqlServerCE、SybaseSQLAnywhere等2.数据库管理系统功能前面讲过,数据库管理系统是一套系统软件,一般而言数据库管理系统这套系统软件应该提供如下功能:(1)数据定义功能(DataDefinitionLanguage------------DDL)(2)数据操纵功能(DataManipulationLanguage--------------DML)(3)数据库的运行管理(4)数据库的建立与维护就以上这些功能,将在后面的章节中作详细的介绍。1.1.4数据库系统(Application)利用数据库管理系统(DBMS)提供的功能,建立在数据基础上的应用系统,主要解决的是与具体业务相关的一些功能实现。1.数据库系统的组成部分在此以一个客户关系管理系统(CRM)为例进行说明,如果一个企业要建立自己的客户关系管理系统,他必须要包含如下几个部分:(1)数据库管理系统数据库管理系统为整个系统提供数据的存储与管理,是整个系统的基础设施、是核心,就目前而言,可选的数据库系统比较多,如前面介绍到的一些大型数据库系统如SqlServer、Oracle等,如果整个企业需要管理的信息比较少,也不涉及一些更加高级的功能,也可以采用一些桌面数据库管理系统,如Access、SqlServer2000桌面版等。(2)数据有了数据库管理系统这个基础设施,还必须将企业中的客户的详细资料,如客户的详细的通信地址,联系人,联系人电话,银行帐号等等,及一些相关资料,如公司产品的详细信息,如产品的描述,单价,产品的数量,产品的其它一些信息等,存放到整个数据库系统中,这是一个公司的宝贵资源,所有的。(3)基于数据的应用程序(例如利用C#.Net开发而成的完成客户管理具体功能的应用程序)2.数据库系统与数据库管理系统之间的关系:(1)数据库系统是建立在数据库管理系统基础上的(2)数据库管理系统主要实现对数据的组织存储与管理(这一部分是通用的)(3)数据库系统主要侧重于业务功能的实现(这一部分是不通用的)1.2客户机与服务器计算模式与SQLServer的体系结构1.2.1基于大型主机的计算模式数据库管理系统(DBMS)数据数据库系统操作系统这是最早的计算模式,由一台大型主机完成全部的计算任务,各个终端没有计算能力,只提供输入与输出的功能服务。这种计算模式现在仍被使用,主要使用在一些银行系统中,比较有名的是基于IBMAS400系统建立的系统。1.2.2基于客户机/服务器(Client/Server-----------C/S)的计算模式客户机/服务器是另外的一种计算模式,它是将系统的功能进行明确分工,将功能性的计算独立出来,由一个专门的程序来完成,这个专门的程序就是我们所说的服务器,使用此功能的那部分程序就称为客户机。在此,服务器是一个完成特点功能的程序,有时也把专门运行此程序的计算机称为服务器(比较数据库服务器、文件服务器、邮件服务器等),此时我们说的服务器是指的一台机器,也就是说有时服务器是指一个程序,有时服务器是指一台机器,具体指什么要根据具体的语言环境来判断,不过一般不会由此引发出歧意,这一点希望大家理解。1.2.3SqlServer体系结构1.SqlServer的客户机/服务器模式以下是其示意图2.SqlServer的实际模式客户端存储设备服务器网络通信客户端应用软件SQLServer服务器查询SQL命令结果功能执行服务器客户机申请功能服务功能使用申请功能执行结果大型主机终端终端终端终端终端Sqlservr.exe服务器Windows后台服务SqlServer企业管理器客户机SqlServer管理工具SqlServer查询分析器isqlw.exeSqlServer服务器管理器SqlServer事件探查器profiler.exe……其它应用程序核心服务:在此Windows后台的服务程序SqlServr.exe程序就是整个SqlServer2000最核以的服务程序。客户端程序:(SqlServer企业管理器、SqlServer查询分析器、SqlServer服务器管理器、事件探查器)。1.2.4数据组织方式1.逻辑方式SqlServer是关系式数据库系统,数据是按照表来存放的。下面我们来看看SqlServer中表的存放方式。数据库(Database):用户可以将需要管理的数据按照使用途径、完成功能及其它需要等条件将数据划分成不同的单元,SqlServer的后台服务程序可以将这些独立的单元进行单独的管理,这个独立的数据库表列行主键列编号姓名性别出生年月身高张三男1975-1-11742李四女1978-3-81653王五男1978-9-21674张三男1975-5-30180……………单元就是数据库(Database),也就是说数据库是数据的逻辑组织方式。SqlServer数据库管理系统(DBMS)为了完全对自身数据的管理,也定义了一些数据库(Database),这部分数据库称为系统数据库。从实现的技术细节上来看,系统数据库与用户自已定义的数据库没有本质上的差别,只是系统数据库中存放的是SqlServer数据库管理系统中的一些系统数据,而用户数据库中存放的是用户数据。表(Table):是一种特定类型的数据的集合,具体是什么类型需要由数据库设计人员在设计期间指定,(注明:以后可以修改),我们把这个过程叫数据库表结构设计。不同的表,其结构不一样,数据存放的格式也不一样。在关系式数据库,数据都是按照表的形成存放数据的。列(Column):有时也叫字段(Field),在二维表中的一列。对于一个二维表而言,列定义了其结构。同样,在关系式数据库中,列定义了数据库表的结构,但不是表结构信息的全部。还有其它结构信息:如表的约束等将在后面的章节中作具体的介绍。行(Row):有时也叫记录(Record),在二维表中的一行。它是二维表中的数据体现。一行代表一个数据体(或者信息体,比如一个学生信息等)。主键(PrimaryKey简写为PK):有时也称为主键列,唯一标识表中行的一列或者多列叫做主键列。在此什么叫唯一标识一行呢?就是给定一列的确定值(或者是多列的组合值)可以从众多的行中把唯一满足条件的一行找出,换句话说就是,这一列的值(或者多列的组合值)能够把各行区分开,我们就说这一列(或者多列)是该表的主键列,或者说是该表的主键。在此举个例子来说明:在上图所示的表中,编号是主键列,因为我们每给定一个编号的值(如1)就可以找到唯一的一行数据,或者说,编号可把表的各行区分开,而姓名就不能作为主键列,大家想想,在中国姓名重复的情况比较多,也就是说给定一个姓名(例如张三),在此表中能找到二行数据与之相对应,也就是说我并不能确定是第一个张三还是第二个张三,因此说姓名这一列不能唯一确定一行,因此姓名这一行不能作为主键列,(也就是不能作为主键)看了前面的关于主键的一些说明,现在我们来将主键的一些特点做进一步的说明:(1)主键(列)不允许空值。(2)不能存在具有相同的主键值的两个行,因此主键值总是唯一标识单个行的。(3)表中可以有不止一个列唯一标识行,每个列都称作候选键。只有一个候选键可以选作表的主键,所有其它候选键称作备用键。(4)尽管表不要求具有主键,但定义主键是很好的做法。2.物理方式:96字节页头……数据行数据行数据行数据行数据行数据行……盘区(个连续页)页(每页)1张三男1975-1-1174编号姓名出生年月身高页与页首尾相连Sys…SysusersSysObjectsArticlesBoardsCatalogsTable3Table2Table1默认文件组数据库Yuan文件组日志文件C:\Study_Data.mdfD:\Study_Data.ndfE:\Study_Log.ldf图还要改每个表都有多个页的引出线文件与文件组(FileandFileGroup):SqlServer2000将数据库映射到一组操作系统文件上,在SqlServer2000中有三种类型的文件:主要数据文件(扩展名为.mdf),次要数据文件(扩展名为.ndf),日志文件(扩展名为.ldf),SqlServer2000不强制使用以上扩展名,但建议使用这些扩展名以帮助标识文件的用途。出于分配和管理目的,可以将一个数据库分成不同的文件组,如上图中的数据库分成了默认文件组和yuan文件组两个文件组。一个文件组内可以定义一到多个文件。每个数据库都有一个默认文件组(Primary),该数据库中的数据字典(也就是系统表)全部存储于默认文件组中。使用文件组可以将不同的表存储在不同的磁盘文件中,当这些表比较大,查询比较频繁时可以提高数据的存取速度(因为操作系统对文件的访问是需要排队的,如果只有一个文件,就好比是排成一队,多个文件就好比是排成多个队,在一些IO处理比较繁忙的数据库系统中,多个队的优势是比较大的)。插入示意图.日志与日志文件(LogandLogFile):从上图中可以看到,组成数据库的文件中有一类特殊的文件,叫日志文件。日志不属于系统定义的任何一个文件组,它是单独管理的一类特殊文件。该文件在整个数据库中起什么作用呢?为此我们先看看在日常生活中您上银行取钱的情况,当您拿着银行卡上银行取钱时,银行的营业会计往往会填写一个纸质的的凭证,记载有取钱的帐户及相应的金额、取钱日期、经手人等取钱相关的详细信息,我们的帐户信息是保存于数据库系统中的,也就是说是保存在计算机的磁盘上
本文标题:第1章 数据库系统概念及SQL SERVER基本操作
链接地址:https://www.777doc.com/doc-4373981 .html