数据库的分析和设计

设计数据库确定一个合适的数据模型,满足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开发数据库应用程序的步骤:

  1. 根据使用的数据源,确定.NET Framework数据提供程序(SQL Server,OLE DB , ODBC Oracle)
  2. 建立数据源连接,Connection对象
  3. 执行SQL操作,Command对象
  4. 获取数据,DataReader对象,DataSet对象
  5. 展示数据

使用ADO.NET连接数据库

自动配置数据库

SQL Serever学习17——数据库的分析和设计的更多相关文章

  1. SQL Serever学习12——数据库的备份和还原

    公司的服务器奔溃了,事先没相应的保护措施,使得公司遭到了较大损失,为了以后不再出现类似事件,在系统中引入备份机制,使得数据库被破坏后损失降到最低. 数据的导出和导入 数据转换服务 数据转换服务DTS( ...

  2. SQL Serever学习13——数据库编程语言

    编程基础 注释 注释命名来对一些语句进行说明,便于日后维护或者其他用户理解,注释不会执行. 单行注释 SELECT GETDATE() --查询当前日期 多行注释 /* 注释有助于 理解操作的内容 查 ...

  3. SQL Serever学习11——数据库的安全管理

    公司管理软件设计完成,但是日常工作繁忙,向领导提出增加几个管理员,帮助管理和维护系统,领导同意了,但是要求一定要管理好这几个管理员用户,保证数据库的安全. 修改身份验证模式 数据库验证机制 sqlse ...

  4. SQL Serever学习5——数据库配置

    数据库的主要属性 限制访问 用来设置数据允许用户访问的状态,或者说允许多少客户访问,有3个选项: MULTI_USER(多个),大多数数据库正常状态,允许多个用户同时访问该数据库. SINGLE_US ...

  5. UML和模式应用学习笔记-1(面向对象分析和设计)

    UML和模式应用学习笔记-1(面向对象分析和设计) 而只是对情节的记录:此处的用例场景为:游戏者请求掷骰子.系统展示结果:如果骰子的总点数是7,则游戏者赢得游戏,否则为输 (2)定义领域模型:在领域模 ...

  6. SQL Serever学习4

    SQL Server系统中数据库相关概念 在SQLServer数据库系统中分为2大类,系统数据库和用户数据库. SQLServer安装后系统会自动生成4个系统数据库,他们是Master,Model,M ...

  7. SQL SERVER学习2——数据库设计

    数据库设计是数据库知识中比较重要的部分,我们需要了解数据库设计的基本步骤,E-R图的画法. 数据库设计的基本概述 检验一个数据库设计好坏的标准就是,看他是否能够方便的执行各种数据检索和处理操作,并且有 ...

  8. SQL Serever学习16——索引,触发器,数据库维护

    sqlserver2014数据库应用技术 <清华大学出版社> 索引 这是一个很重要的概念,我们知道数据在计算机中其实是分页存储的,就像是单词存在字典中一样 数据库索引可以帮助我们快速定位数 ...

  9. SQL Serever学习15——进阶

    特别说明:在sqlserver2014中,不区分大小写,也就是说,SQL是大小写不敏感的 数据库模型3类: 层次模型 网状模型 关系模型 关系型数据库语言3种: DDL数据定义语言 CREATE(创建 ...

随机推荐

  1. struts2 Convention插件好处及使用

    现在JAVA开发都流行SSH.而很大部分公司也使用了struts2进行开发..因为struts2提供了很多插件和标签方便使用..在之前开发过程中总发现使用了struts2会出现很多相应的配合文件.如果 ...

  2. layui select 禁止点击

    $('select').attr('disabled', 'disabled'); form.render('select'); 注意事项: 1. 必须写 layui.use([form]) 2. 先 ...

  3. CTF中密码学一些基础

    本文作者:i春秋签约作家MAX. 凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密. 给大家先找两道题,来一起探讨基础密码学 ...

  4. PHP消息队列实现

    一个经典的消息队列就是这样的,主要是入队出队操作. shell脚本日志输出 学习地址:http://www.imooc.com/article/19111

  5. leetcode-849-到最近的人的最大距离

    题目描述: 在一排座位( seats)中,1 代表有人坐在座位上,0 代表座位上是空的. 至少有一个空座位,且至少有一人坐在座位上. 亚历克斯希望坐在一个能够使他与离他最近的人之间的距离达到最大化的座 ...

  6. 队列的理解和实现(二) ----- 链队列(java实现)

    什么是链队列 链队是指采用链式存储结构实现的队列,通常链队用单链表俩表示.一个链队显然需要两个分别指示队头和队尾的指针,也称为头指针和尾指针,有了这两个指针才能唯一的确定. package 链队列; ...

  7. POJ 2192

    #include <iostream> #include <string> #define MAXN 500 using namespace std; bool dp[MAXN ...

  8. FlowPortal-BPM——离线审批(邮箱审批)配置

    一.将系统文件复制到安装目录下 二.以管理员身份运行bat安装程序 三.开启邮件离线审批服务 四.创建数据库表(JAVA数据库 或 .Net数据库) 五.配置config文件(发件箱.收件箱.错误问题 ...

  9. C#-MVC-★不同层之间的传值方式★

    方式一:form表单提交(一对一传值) 例如: view层代码: action - 数据提交到的服务端(如Home控制器下的Insert动作) method - 提交数据的方式(post或get) n ...

  10. Ubuntu16.04安装视觉SLAM环境(g2o)

    1.首先在github上下载g2o图优化库 git clone https://github.com/RainerKuemmerle/g2o.git 2.运行安装以下依赖库 sudo apt-get ...