1.1 数据库的构成

1.2 数据库对象概述

1.2.1 数据库对象

  RDBMS 关系数据库管理系统

  对象:数据库、索引、事务日志、CLR程序集、表 、报表、文件组、全文目录、图表、用户自定义数据类型 、视图、角色、存储过程、用户、用户 自定义函数、加密密钥

  安装好的sql server 第一次加载时包括以下4个系统数据库 :master、model、msdb、tempdb

  1.master数据库;保存一组特殊的数据表(系统表)用户跟踪整个系统。

  2.model数据库顾名思义,是指可以基于该模型得到一个副本。model数据库是新建数据库的模板。

  3.msdb数据库是SQL代理进程保存任意系统任务的地方。如果计划对一个数据库每夜进行备份,则在msdb数据库中有一个记录项。

  4.tempdb数据库是服务器的一个主要工作区。在执行复杂或者大型的查询操作时,如果SQL Server需要创建一些中间表来完成,那它就在tempdb数据库中进行。在创建临时表时,即使你是在  当前数据库中创建这些表的,但实际也是在tempdb数据库屮创建的。只要需要临时保存数据, 就很可能是将数据保存在tempdb数据库中。tempdb数据库与其他任意数据库大相径庭。不仅数据库中的对象是临时的,连数据库本身也是临时的。每次动SQL Server时,tempdb数据库是系统中唯一完全重建的数据库。

1.2.2 事务日志

1.2.3 最基本的数据库对象:表

  表可以有与之相关联的附加对象----这些对象只在特定表的结构中存在。

  1、索引(聚集索引和非聚集索引)

  2、触发器

  3、约束

1.2.4 模式

  模式(Schema)为数据库和其所包含的其他对象之间提供了中间名称空间。任意 数据库的模式都是dbo(表示数据库所有者)

1.2.4 文件组

  默认情况下,数据库中所有的表及其他多想(日志除外要存储在一个文件中)。该文件是一些所谓的主要文件组的成员。不过,并不一定要坚持这样的配置。

1.2.6 图表

  数据库图表是数据库设计的可视表示,它包括了各种表、每一张表的列名以及表之间的关系。

1.2.7 视图

  视图是一种虚拟表。除了视图本身不包含任意数据外,视图的使用基本与表的使用类似。事实上 视图仅仅是存储在表中的数据的预先设计好的映射和表示。

1.2.8 存储过程

  存储过程是sql server 编程功能的基础。存储过程通常是组成一个逻辑单元的Transact-SQL(用于查询Microsoft SQL Server的语言)语句的有序集合。存储过程允许使用变量和参数,也可时使用选择和循环结构。与发送单条语句到服务器相比,使用存储过程具有以下几个优点:

  • 调用存储过程不使用长文本串而使用短存储过程名,可减少运行存储过程中的代码所要的网络流量。
  • 预先优化和预编译,能将存储过程每次运行的时间缩短一点。
  • 通常考虑安全原因,或仅仅是简化数据库的复杂性,将过程封装。
  • 可从其他存储过程调用,使得它们在一定意义上重用。

  此外 ,可利用任何 .NET语言创建程序集,并向存储过程中添加T-SQL之外的程序结构。

1.2.9 用户自定义函数

  用户自定义函数(UDF)与存储过程非常相似,不同之处有以下几点:

  • 返回值的数据类型包括大部分SQL Server数据类型。不包括的返回类型是:text、ntext、image、cursor和timestamp
  • 没有“副作用”,即用户自定义函数不能外城在其范围之外的功能,如更改表、发送电子邮件或更改系统或数据库参数。

1.2.10 用户和角色

  用户和角色关系密切。用户几乎等价于登录名。简言之, 该对象标识登录SQL Server 的用户的标识符。登录SQL Server的任何人都映射到一个用户。用户属于一个或多个角色。SQL Server 中可以直接赋予用户或角色执行某种操作的权限,一个或多个可属于同一个角色。

1.2.11 规则

  规则和越是都是限制插入到表中的数据类型的信息。如果更新或插入记录违反规则,则插入或更新操作被拒绝。此外,规则可用于定义用户自定义数据类型上的限制。与规则不同,约束本身不是实际对象,至少是描述特定表的元数据片段。

1.2.12 默认值

  SQL Server中有两种类型的默认值,包括对象本身的默认值,以及描述表中特定列的元数据的默认值(非真正对象)。和约束与规则类型,规则是对象,而约束不是对象,是元数据。当插入一条记录时,如果没有提供该列的值,且该列具有其默认值,则自动插入默认值。

1.2.13 用户自定义数据类型

1.2.14 全文目录

1.3 SQL Server 数据类型

 数据类型名称 类      型  长度(以字节为单位) 数据特点
 Bit            整型        1

这个数据的大小容易让人误解。表中的第一个bit数据类型占一个字节,

其余7个bit数据类型使用同一个字节。如果允许使用null,则会多占用一个字节。

 bigint            整型        8
 int            整型        4  
 smallint            整型        2
 tinyint            整型        1
 decimal或Numeric            小数/数字型        可变
 money            货币型        8
 smallmoney            货币型        4  
 float(也是ANSIReal的同义词)           近似数字型       可变
 DateTime            日期/时间型        8  

NULL数据

  假设表中有一行的某一列没有任何数据,也就是你不知道改列的值。

1.4 SQL Server 对象标识符

1.4.1 需要命名的对象

  • 存储过程(Storeed procedure)
  • 视图(View)
  • 默认值(Default)
  • 触发器(Trigger)
  • 用户自定义函数(User-defined Functions)
  • 全文目录(Full-text catalog)
  • 模式(Schema)
  • 约束 (Constraint)
  • 服务器(Server)
  • 用户自定义类型(User-defined Type)
  • 表(Table)
  • 规则(Rule)
  • 索引(Index)
  • 数据库(Database)
  • 登录名(Login)
  • 文件(File)
  • 列(Column)
  • 文件组(Filegroup)
  • 角色(Role)

1.4.2 命名规则

net 架构师-数据库-sql server-001-SQL Server中的对象的更多相关文章

  1. net 架构师-数据库-sql server-003-T-SQL 基本语句

    3.1 基本SELECT语句 SELECT [ALL|DISTINCT] [TOP (<expression>)  [PERCENT] [WITH TIES]] <coloumn  ...

  2. net 架构师-数据库-sql server-002-工具

    本章讲述的工具包括: SQL Server 联机丛书 SQL Server配置管理器 SQL Server Management Studio SQL Server Business Intellig ...

  3. 架构师养成记--16.disruptor并发框架中RingBuffer的使用

    很多时候我们只需要消息中间件这样的功能,那么直需要RinBuffer就可以了. 入口: import java.util.concurrent.Callable; import java.util.c ...

  4. IT架构师介绍-软件架构设计学习第一天(非原创)

    文章大纲 一.架构师定义二.架构师分类与具备能力三.研发人员发展的技术路线四.架构师知识体系五.参考文章   一.架构师定义   什么是架构师,这个聊架构话题时永恒的问题.每个公司对架构师的定位也有所 ...

  5. 2010“架构师接龙”问答--杨卫华VS赵劼(转)

    add by zhj:虽然是几年前的文章,但还是很有参考价值的 原文:http://blog.zhaojie.me/2010/05/programmer-magazine-2010-5-archite ...

  6. 架构师修炼 II - 表达思维与驾驭方法论

    开篇之前我想先说说当年开发的那点事儿:大约10年前吧,我还是一个程序员的时候经常都是遇到这样的项目开发流程: 解决方案 :满足客户目的和投标用的一堆文档(不少还是互联网上抄的) ,是以Word为主的纯 ...

  7. DevOps组织中应用架构师的新定位与实践

    [摘要] 针对应用架构师相关窘境,在现代化的应用开发中,DevOps组织需要定义应用架构师职责,使应用架构师与DevOps团队各角色更有效的沟通,交付更有价值的产品.在多数情况下,应用架构师不是Dev ...

  8. SQL语句操作SQL SERVER数据库登录名、用户及权限

    要想成功访问 SQL Server 数据库中的数据, 我们需要两个方面的授权: 获得准许连接 SQL Server 服务器的权利: 获得访问特定数据库中数据的权利(select, update, de ...

  9. 使用Oracle Sql Developer将SQL SERVER 2008数据库移植到Oracle 11g

    ORACLE官方提供的Sql Developer自带的Oracle Migration Workbench. 什么是Oracle SQL Developer?在官方页面上,是这样介绍它的: Oracl ...

随机推荐

  1. Mac OS找不到/usr/include文件夹的解决办法

    Mojave最新解决方案:终端执行: xcode-select --install #完成后执行 sudo installer -pkg /Library/Developer/CommandLineT ...

  2. 便捷删除QQ空间说说

    用Chrome打开QQ空间说说(心情),按F12,在Console里面粘贴以下代码,按回车 var delay = 1000; function del() { document.querySelec ...

  3. vue - 登录验证与权限控制

    描述具体问题 需求 业务系统通常需要登录才能访问受限资源,在用户未登录情况下访问受限资源需要重定向到登录页面: 多个业务系统之间要实现单点登录,即在一个系统或应用已登录的情况下,再访问另一个系统时不需 ...

  4. 【POJ2992】Divisors

    [题目概括] 计算\(C_n^k\)的因子个数. [思路要点] 首先考虑将组合数展开,展开后就是\(\frac {n!}{k!\times (n-k)!}\). 这样就是计算出这些质因子的个数,然后将 ...

  5. Codechef SEAARC Sereja and Arcs (分块、组合计数)

    我现在真的什么都不会了呢...... 题目链接: https://www.codechef.com/problems/SEAARC 好吧,这题其实考察的是枚举的功力-- 题目要求的是\(ABAB\)的 ...

  6. 8.Python标识符命名规范

    简单地理解,标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量.函数.类.模块以及其他对象的名称. Python 中标识符的命名不是随意的,而是要遵守一定的命令规则,比如 ...

  7. Linux安装vsftpd及配置详解

    1 安装vsftpd组件 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件.[root@bogon ~]# yum -y install vsftpd 2.FT ...

  8. Python 使用PyQt5进行开发(一)

    Qt  是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架.它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器. 我们先简单使用Qt进行一个小工 ...

  9. vue 表格组件分享

    分享一款自己写的table组件  用起来还算简单好用   (先介绍使用方法(ts版本的)) 引入组件不多说 import jTable from '../comp/comp/table/table.v ...

  10. JUnit@Before失效

    在学习Shiro的过程中需要使用到JUnit@Before注解配合测试,但是无论如何,@Before下面的方法都不按照预期的执行,困扰良久,后来各种百度终于找到根源,今分享于诸公,望能解诸公之急: J ...