9月18日,SQL学习基础1
数据库管理和应用
Oltp是小型的管理,OLAP是大型的管理
开发的内容如触发器
数据库管理系统(Database Management System,简称为DBMS)是位于用户与操作系统之间的一层数据管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的建立、查询、更新以及各种数据库控制等。
DBMS总是基于某种数据模型,这些模型可以分为层次模型、网状模型、关系模型、面向对象模型等。
Microsoft SQL Server 2008系统由4个主要部分组成。这4个部分被称为4个服务,这些服务分别是数据库引擎、分析服务、报表服务和集成服务。这些服务之间相互存在和相互应用,它们的关系示意图如图1-3所示。
Microsoft SQL Server 2008系统提供了两种类型的数据库,即系统数据库和用户数据库。
系统数据库存放Microsoft SQL Server 2008系统的系统级信息,例如系统配置、数据库的属性、登录账户、数据库文件、数据库备份、警报、作业等信息。Microsoft SQL Server 2008使用这些系统级信息管理和控制整个数据库服务器系统。
用户数据库是由用户创建的、用来存放用户数据和对象的数据库。
系统数据库:
master数据库是最重要的系统数据库,它记录了SQL Server系统级的所有信息,这些系统级的信息包括服务器配置信息、登录账户信息、数据库文件信息、SQL Server初始化信息等等,这些信息影响整个SQL Server系统的运行。
model数据库是一个模板数据库。该数据库存储了可以作为模板的数据库对象和数据。当创建用户数据库时,系统自动把该模板数据库中的所有信息复制到用户新建的数据库中,使得新建的用户数据库初始状态下具有了与model数据库一致的对象和相关数据,从而简化数据库的初始创建和管理操作。
msdb是与SQLServerAgent服务有关的数据库。该系统数据库记录有关作业、警报、操作员、调度等信息,这些信息可以用于自动化系统的操作。
tempdb是一个临时数据库,用于存储查询过程中所使用的中间数据或结果。实际上,它只是一个系统的临时工作空间。
在数据库技术领域,按照OLTP数据存储模型组织数据的应用环境称为OLTP环境。OLTP数据存储模型也称为OLTP数据库。
OLAP数据存储模型与OLTP数据存储模型截然不同。从结构上来看,OLAP数据存储模型的常见结构是星型结构或雪崩结构。从使用目的来看,OLAP数据库的主要作用是提高系统对数据的检索和分析速度。
示例数据库(用户数据库)
AdventureWorks不是系统数据库,而是一个示例OLTP数据库。该数据库存储了某个假设的自行车制造公司的业务数据,示意了制造、销售、采购、产品管理、合同管理、人力资源管理等场景。用户可以利用该数据库来学习SQL Server的操作,也可以模仿该数据库的结构设计用户自己的数据库。
AdventureWorksLT也是一个示例OLTP数据库,但是其数据库对象和数据都少于AdventureWorks数据库,是一个经过简化的轻量级的示例数据库。对于数据库技术的初学者来说,可以从AdventureWorksLT数据库学起。
AdventureWorksDW是一个示例OLAP数据库,用于在线事务分析。用户可以利用该数据库来学习SQL Server的OLAP操作,也可以模仿该数据库的内部结构设计用户自己的OLAP数据库。
SQL Server配置管理器
在Microsoft SQL Server 2008系统中,可以通过“计算机管理”工具或“SQL Server配置管理器”查看和控制SQL Server的服务。
通过右击某个服务名称,可以查看该服务的属性,以及启动、停止、暂停、重新启动相应的服务。
使用摄像机可以记录一个场景的所有过程,以后可以反复地观看。使用SQL Server Profiler工具可以完成这种摄录操作。
从Microsoft SQL Server Management Studio窗口的“工具”菜单中即可运行SQL Server Profiler。
在Microsoft SQL Server 2008系统中,不仅提供了大量的图形化工具,还提供了大量的命令行实用工具。
这些命令行实用工具包括bcp、dta、dtexec、dtutil、Microsoft.AnalysisServices. Deployment、nscontrol、osql、profiler90、rs、rsconfig、rskeymgmt、sac、sqlagent90、sqlcmd、SQLdiag、sqlmaint、sqlservr、sqlwb、tablediff等。
sqlcmd实用工具
在Microsoft SQL Server 2008系统中,数据库管理员(Database Administration,简称为DBA)是最重要的角色。
DBA的工作目标就是确保Microsoft SQL Server 2008系统正常高效地运行。
DBA的工作也是最繁忙的工作,无论是性能调整,还是灾难恢复,都离不开DBA的支持。
DBA的12项任务
任务一:安装和配置。
任务二:容量规划。
任务三:应用架构设计。
任务四:管理数据库对象。
任务五:存储空间管理。
任务六:安全管理。
任务七:备份和恢复。
任务八:性能监视和调优。
任务九:调度作业。
任务十:网络管理。
任务十一:高可用性和高可伸缩性管理。
任务十二:故障解决。
应用架构设计包括数据库设计、应用程序设计和相应的技术架构设计。
数据库设计应该考虑数据库的逻辑需求、数据库的创建方式和数量、数据库数据文件和日志文件的物理位置等。一般情况下,可以在Microsoft SQL Server 2008系统成功安装之后,根据规划的目标,手工创建数据库。
应用设计应该考虑开发工具的选择、API技术、内部资源和外部资源的结合、应用架构的分布等。需要强调是在应用设计时,DBA应该与开发人员共同工作,确保他们编写出优化的代码,尽可能地使用服务器的资源。
技术架构设计主要包括表示层、逻辑层和数据层的分布。
管理数据库对象是使用数据库的最基本、最重要的工作。这些对象包括表、索引、视图、存储过程、函数、触发器、同义词等。
为了完成管理数据库对象的工作,DBA应该能够很好地回答诸如下面的这些问题。
系统应该包括哪些数据?
应该怎样存储这些数据?
应该在系统中创建哪些表?
应该在这些表中创建哪些索引,以便加速检索?
是否应该创建视图?为什么要创建这些视图?
应该创建哪些存储过程、函数、CLR对象?
应该在哪些表上创建触发器?应该针对哪些操作创建触发器?
是否应该创建同义词?