zoukankan      html  css  js  c++  java
  • 01了解SQL

    1.SQL(Structured Query Language)
    结构化查询语言(Structured Query Language)
    用于存储数据以及查询、更新和管理关系数据库系统
    2.数据库:保存有组织的数据的容器(通常是一个文件或者一组文件)
    数据库管理管理系统:DBMS
    3.分类
    数据定义语言(DDL)
    CREATE 、ALTER 、DROP
    数据操纵语言(DML)
    增加(insert)、删除(delete)、更新(update)、查询(select)
    数据控制语言(DCL)
    分配(grant)、回收(revoke)、拒绝(deny)
    4.表
    5.常用数据类型
    char:固定长度字符串
    varchar:可变长度字符串
    6.数据冗余
    在一个数据集合中重复的数据称为数据冗余。
    7.范式
    设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式。
    第一范式(1st NF)
    如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式。
    第一范式的目标是确保每列的原子性。
    第二范式(2st NF)
    如果一个关系满足1NF,并且除主键外的其它列,都完全依赖于该主键,则满足第二范 式。
    第二范式要求每个表只描述一件事情。
    胜者得分只跟难度有关系时,则省者得分不是用来描述游戏的,而是描述难度的。
    第三范式(3st NF)
    如果一个关系满足2NF,并且所有非主属性对任何候选关键字都不存在传递依赖,则满足第三范式。
    第三范式要求确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
    示例

    S1(SNO,SNAME,DNO,DNAME,LOCATION)
    学号 姓名 所在系 系名称 系地址
    关键字SNO决定各个属性。由于是单个关键字,没有部分依赖的问题,肯定是2NF。但这关系肯定有大量的冗余,有关学生所在的几个属性DNO,DNAME,LOCATION将重复存储,插入,删除和修改时也将产生类似以上例的情况。
    原因:关系中存在传递依赖造成的。即SNO1->1DNO。而DNO1->nSNO却不存在,而DNO->LOCATION存在,因此关键辽SNO对LOCATION函数决定是通过传递依赖SNO->LOCATION实现的。也就是说,SNO不直接决定非主属性LOCATION。
    解决目地:每个关系模式中不能留有传递依赖。
    解决方法:分为两个关系S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)
    注意:关系S中不能没有外关键字DNO。否则两个关系之间失去联系
  • 相关阅读:
    ubuntu sudo 号令有效处理
    shell脚本的主笔、存储、实行
    Oracle 11gR1中细粒度访谒收集处事(4)
    Solaris效力经管工具 SMF快速入门指南(1)
    Solaris 10完成宁静Kerberos身份验证(2)
    高质量C /C编程指南第2章 程序的版式
    Solaris 10下设置EJB 3.0景遇(1)
    高质量C /C编程指南序言
    Java学习之路:不走弯路,就是捷径 www.51testing.com
    两个结构体可以直接赋值吗? 回复 "JohnsonAnother" 的问题
  • 原文地址:https://www.cnblogs.com/yimengtianya1/p/8947625.html
Copyright © 2011-2022 走看看