sql2008 t-sql
写在前边
这个系列的文章纯属个人学习笔记。仅仅针对自己不熟悉的部分进行简要摘录。
更多的倾向于sql2005,2008中的新概念和新特性,可能不太适合刚刚接触t-sql的同学:)
示例数据库:
原书提供的例子数据库创建脚本
AdventureWorksLT2008
SQL2005示例数据库
关系模型基础:
约束 (Constraint)
关系模型的最大优点之一就是将数据完整性定义为模型的一部分:
1. Domain integrity: (最简单的约束)就是设置是否允许为空(null)E
2. Entity integrity: candidate key, 可以唯一标示一条记录,候选键可以做为主键,否则就被称为备用关键字(alternate key)
3. Referential integrity: foreign key
规范化 (Normalization)
形式化的数学处理过程,为了在不牺牲完整性的前提下,将数据冗余降低到最小。
第一范式:表中的行必须是唯一的,属性应该是原子的。该范式对关系的定义来说是冗余的,关系数据库一定符合该范式。行的唯一性由主键保证
第二范式:首先满足第一范式;其次对每一个候选键,每个非键属性必须完全依赖于整个(全部的属性)候选键。如上图,如果Orders保留了复合主键,则orderdate, customerid, companyname等属性可以通过orderid唯一决定。而orderid并不是某个候选键的全部属性(这里的复合主键即唯一候选键)。所以需要提取OrderDetails表。引入的数据冗余可以考虑以下情况:相同orderid时不同productid的订单会有orderdate, customerid, companyname三个字段的冗余。
第三范式:首先满足第二范式;其次,所有非键属性必须非传递依赖于候选键。就是说所有的非键属性必须相互独立,没有相互依赖。如上图,customerid和companyname都依赖于整个主键orderid,但companyname依赖于customerid,这样就形成了传递依赖:须知道orderid才能知道customerid, 须知道customerid才能知道companyname。提取Customers表后如下图:
第二、三范式总结:每个非键属性都必须仅依赖于全部的键,不能是其他东西。
数据生命周期(环境):
1. 联机事务处理OLTP (on line transactional processing)
- 使用T-SQL进行增删改查的环境,注意控制数据冗余,保证完整性。
- 不适合生成报表,因为可能涉及复杂的关联关系
2. 数据仓库DW (data warehouse)
- 针对数据检索和生成报表的环境。
- 为查询进行设计和优化,有意保留部分冗余
- star schema:一个事实表(存储事实和measure),多个维度表(每个维度实现为一个包含冗余数据的表)。
- snowflake schema:如果规范化星形模式中的一个维度,生成表示该维度的多个表,得到就是雪花形维度(snowflake dimension),包含雪花维度的模式即雪花模式
- measure: A measure represents a column that contains quantifiable data, usually numeric, that can be aggregated. A measure is generally mapped to a column in a fact table.
- 数据通过ETL(extract transform and load)工具被加载到DW, SQL server中由Integration Service响应ETL请求。
3. 联机分析处理 OLAP (on line analytical processing)
- 对聚合后的数据进行在线动态分析,通常涉及频繁地不同级别的聚合(包括切片slicing和切块dicing)。
- 使用sql server analysis service计算不同级别的聚合并保存在多维结构(cube)中
4. 数据挖掘 data mining
SQL Server体系结构:
默认数据库:
- master: 保存数据库实例范围内的元数据信息,服务配置,所有数据库的信息,初始化信息
- model: 新数据库的模板。修改model数据库将影响其修改后所创建的数据库
- tempdb: 保存临时数据:work table, sort space, row versioning, etc. 服务重启后重置为model
- msdb: 保存Agent服务的数据。Agent负责job,schedule, replication和报警。另外还保存一些sql server功能的信息,如database mail和service broker。
- resource sql server 2005新增的。保存所有系统对象
架构(Schema)和对象:
- Schema可以看做是各种对象的容器,这些对象可以是table, view, sp等。一个数据库可以包含多个schema,每个schema又包含很多对象。
- 可以在Schema的级别上制定访问权限控制
- Schema也是一个命名空间,可用作对象的前缀,如Sales.Orders表示Sales架构中的Orders表,这种表示方法称为架构限定(schema-qualified)名称。
- 如果省略架构名,对象的搜索次序为:用户默认schema > dbo schema
分享到:
相关推荐
《Microsoft SQL Server 2008技术内幕:T-SQL查询》是一本深入探讨SQL Server 2008中T-SQL(Transact-SQL)查询的权威书籍。T-SQL是SQL Server数据库管理系统的核心语言,用于数据操作、查询、存储过程编写以及...
《Microsoft SQL Server 2008技术内幕:T-SQL查询》是一本深入探讨SQL Server 2008中T-SQL(Transact-SQL)查询的权威指南。T-SQL是微软SQL Server数据库管理系统的核心语言,用于数据操作、查询、存储过程编写以及...
作为一本讲述T-SQL高级查询的专业图书,《Microsoft SQL Server 2008技术内幕:T-SQL查询》旨在结合实践中的各种常见问题,教读者如何用SQL作为语言工具来思考问题,揭示基于集合查询的强大威力。《Microsoft SQL ...
Microsoft SQL Server 2008技术内幕:T-SQL语言基础的示例数据库无法再国外的网址上下载,这个是已经下载好的
《Microsoft SQL Server 2005技术内幕:T-SQL查询的源代码》是一本深入探讨SQL Server 2005中T-SQL查询技术的专业书籍。T-SQL(Transact-SQL)是Microsoft SQL Server数据库管理系统中用于数据操作、查询、存储过程...
本书全面深入地介绍了Microsoft SQL Server 2008中高级T-SQL查询、性能优化等方面的内容,以及SQL Server 2008新增加的一些特性。主要内容包括SQL的基础理论、查询优化、查询算法及复杂度,以及在使用子查询、表...
《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》是Microsoft SQL Server 2008系列中的一本。书中全面深入地介绍了T-SQL的基本元素,以及SQL Server 2008中新增加的一些特性。主要包括SQL的基础理论、逻辑查询...
《Microsoft SQL Server 2008技术内幕:T-SQL查询》一书的源代码及附录A内容。
《Microsoft SQL Server 2005技术内幕:T-SQL查询》 《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》 《Microsoft SQL Server 2005技术内幕:存储引擎》 《Microsoft SQL Server 2005技术内幕:查询、调整...
《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》是关于数据库管理和开发的重要参考资料,专注于T-SQL(Transact-SQL)这一SQL Server的核心编程语言。T-SQL是微软SQL Server中用于数据查询、更新、插入和删除...
《Microsoft SQL Server 2005技术内幕全套(三):T-SQL查询》是一部深入探讨SQL Server 2005数据库管理系统中Transact-SQL(T-SQL)查询技术的专业著作。本部分主要聚焦于如何高效、准确地在SQL Server 2005环境中...
全球公认SQL Server 2005经典著作,囊括大量鲜为人知的技术内幕,大师智慧、专家经验尽览无余。 本系列图书中文版得到了微软总部SQL Server组专家的高度重视,同时也得到了微软中国上海SQL Server全球技术支持...
本书是Inside Microsoft SQL Server 2005系列四本著作中的一本。它详细介绍了T-SQL的内部构造,包含了非常全面的编程参考。它提供了使用Transact-SQL(T-SQL)的专家级指导,T-SQL是用于SQL Server的最常见的也是...
Microsoft SQL Server 2005技术内幕:T-SQL查询,经典书籍,上传受限,所以分开两个文件
Microsoft SQL Server 2005技术内幕: T-SQ程序设计 中文版本的 第一部分 第二部分地址:http://download.csdn.net/source/2680866
《Microsoft SQL Server 2005技术内幕:T-SQL查询》是一本专注于SQL Server 2005数据库管理系统中T-SQL(Transact-SQL)查询语言的专著。这本书是技术内幕系列的一部分,旨在为读者提供深入、全面的T-SQL查询知识,...
《Microsoft SQL Server 2008技术内幕:T-SQL查询》是一本深入探讨SQL Server 2008中T-SQL(Transact-SQL)查询的权威指南。该书涵盖了从基本概念到高级特性的全方位知识,旨在帮助读者理解和掌握SQL Server 2008的...
SQL Server 2008技术内幕:T-SQL查询SQL Server 2008技术内幕:T-SQL查询SQL Server 2008技术内幕:T-SQL查询SQL Server 2008技术内幕:T-SQL查询