SQL Serever学习17——数据库的分析和设计
数据库的分析和设计
设计数据库确定一个合适的数据模型,满足3个要求:
- 符合用户需求,包含用户所需的所有数据
- 能被数据库管理系统实现,如sqlserver,oracle,db2
- 具有比较高质量,容易理解,使用方便,便于维护,效率高
设计步骤分为6步:
- 需求分析,与用户沟通,达成统一意见
- 概念结构设计,创建E-R图
- 逻辑结构设计,从E-R图转为关系模型,1对多,多对多,建立数据模型,数据库三范式
- 物理结构设计,确定数据类型,是否可空,确定主键,外键,索引
- 数据库实施
- 数据库运行维护
数据库的三范式:
- 1NF,每个属性不可在分割,比如地址如果有省,市,那么还可以在分为省属性,城市属性
- 2NF,满足1NF前提下,每个非主键属性都依赖于主键,比如员工表(主键员工Id)的字段有部门Id和部门主管(依赖于部门Id,而不是员工Id),那么就要去掉部门主管字段
- 3NF,满足2NF前提下,非主键属性不能是其他字段的函数传递值,比如员工表的奖金字段=薪资字段X20%,那么就不符合3NF,应该去掉奖金字段
数据库系统开发
使用visual studio 2012工具,使用C#开发语言,创建有关销售管理数据库的windows应用系统。
ADO.NET介绍
是统一数据容器类编程接口,包含了2个核心:
- .NET Framework数据提供程序,为数据处理和快速访问数据设计的组件,有4个对象(Connection,Command,DataReader,DataAdapter)
- DataSet,看做内存中的数据源,将数据缓存到本地,进行数据的处理,不需要占用连接,可以释放连接给其他客户使用
使用ADO.NET开发数据库应用程序的步骤:
- 根据使用的数据源,确定.NET Framework数据提供程序(SQL Server,OLE DB , ODBC Oracle)
- 建立数据源连接,Connection对象
- 执行SQL操作,Command对象
- 获取数据,DataReader对象,DataSet对象
- 展示数据
使用ADO.NET连接数据库
自动配置数据库
SQL Serever学习17——数据库的分析和设计的更多相关文章
- SQL Serever学习12——数据库的备份和还原
公司的服务器奔溃了,事先没相应的保护措施,使得公司遭到了较大损失,为了以后不再出现类似事件,在系统中引入备份机制,使得数据库被破坏后损失降到最低. 数据的导出和导入 数据转换服务 数据转换服务DTS( ...
- SQL Serever学习13——数据库编程语言
编程基础 注释 注释命名来对一些语句进行说明,便于日后维护或者其他用户理解,注释不会执行. 单行注释 SELECT GETDATE() --查询当前日期 多行注释 /* 注释有助于 理解操作的内容 查 ...
- SQL Serever学习11——数据库的安全管理
公司管理软件设计完成,但是日常工作繁忙,向领导提出增加几个管理员,帮助管理和维护系统,领导同意了,但是要求一定要管理好这几个管理员用户,保证数据库的安全. 修改身份验证模式 数据库验证机制 sqlse ...
- SQL Serever学习5——数据库配置
数据库的主要属性 限制访问 用来设置数据允许用户访问的状态,或者说允许多少客户访问,有3个选项: MULTI_USER(多个),大多数数据库正常状态,允许多个用户同时访问该数据库. SINGLE_US ...
- UML和模式应用学习笔记-1(面向对象分析和设计)
UML和模式应用学习笔记-1(面向对象分析和设计) 而只是对情节的记录:此处的用例场景为:游戏者请求掷骰子.系统展示结果:如果骰子的总点数是7,则游戏者赢得游戏,否则为输 (2)定义领域模型:在领域模 ...
- SQL Serever学习4
SQL Server系统中数据库相关概念 在SQLServer数据库系统中分为2大类,系统数据库和用户数据库. SQLServer安装后系统会自动生成4个系统数据库,他们是Master,Model,M ...
- SQL SERVER学习2——数据库设计
数据库设计是数据库知识中比较重要的部分,我们需要了解数据库设计的基本步骤,E-R图的画法. 数据库设计的基本概述 检验一个数据库设计好坏的标准就是,看他是否能够方便的执行各种数据检索和处理操作,并且有 ...
- SQL Serever学习16——索引,触发器,数据库维护
sqlserver2014数据库应用技术 <清华大学出版社> 索引 这是一个很重要的概念,我们知道数据在计算机中其实是分页存储的,就像是单词存在字典中一样 数据库索引可以帮助我们快速定位数 ...
- SQL Serever学习15——进阶
特别说明:在sqlserver2014中,不区分大小写,也就是说,SQL是大小写不敏感的 数据库模型3类: 层次模型 网状模型 关系模型 关系型数据库语言3种: DDL数据定义语言 CREATE(创建 ...
随机推荐
- IOS渠道追踪方式
本文来自网易云社区 作者:马军 IOS,安卓渠道追踪的差异 Google Play国内不可用,国内的安卓 App 分发,都是依托几十个不同的应用市场或发行渠道,如百度.360.腾讯等互联网企业以及小米 ...
- jQuery中的each, data, 插件
一. each() $(' ').each(function (){...}) jQuery.each(collection, callback(indexInArray, valueOfEleme ...
- C语言中printf与i++,C++中的cout
一,printf与i++ 1,C语言中的printf是自右向左输出,. 2,而i++与++i不同的 i++首先取得i的值,下一行时候i = i + 1: ++i,首先i = i + 1,再取得i的值. ...
- Ubuntu下实现socks代理转http代理
代理(英语:Proxy),也称网络代理,是一种特殊的网络服务,允许一个网络终端(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接.一些网关.路由器等网络设备具备网络代理功能. ...
- FFmpeg工具使用总结
. 一. FFmpeg是什么? 简单说,FFmpeg就是一个很好的,免费的,开源的视频转换工具.详细说,FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依 ...
- Java简易撞鬼游戏demo
9*9方格内两点随机行走,相遇则停止. public class 撞鬼 { public static int length = 9; public static char[][] matrix = ...
- HLS:OpenCV和RTL代码转换关系
OpenCV 图像处理是基于存储器帧缓存而构建的, 它总是假设视频帧数据存放在外部 DDR 存储器中. 由于处理器的小容量高速缓存性能的限制, 因此, OpenCV 访问局部图像性能较差. 并且, 从 ...
- Neo4j使用简单例子(转)
Neo4j Versions Most of the examples on this page are written with Neo4j 2.0 in mind, so they skip th ...
- 释放linux端口
感谢作者的共享,在此表示感谢 有时候关闭软件后,后台进程死掉,导致端口被占用.下面以TOMCAT端口8060被占用为例,列出详细解决过程. 解决方法: 1.查找被占用的端口 netstat -tln ...
- wap 往下拉自动加载更多数据
var stop=true; $(window).scroll(function(){ totalheight = parseFloat($(window).height()) + parseFloa ...