数据库结构

数据库构思与设计规范

怎甘沉沦 提交于 2019-12-19 05:41:24
一、 数据库模型构思(数据库设计步骤) a) 数据库模型理解 数据库模型设计是编写软件就像建筑结构对于工程师们。工程师们学习所有的设计艺术比如浴室应该放哪和有多少个浴室,以及是否有浴室。如果这些结构设计留给土木工程师,他们也许会忘记这些浴室或者把问题遗留给居住的人们。这就非常类似数据库结构和与开发人员之间设计问题。 土木工程师们确保我们的建筑上的砖头不会砸到我们,而建筑师们让建筑 更加的适合居住。是什么导致我们在软件,数据库建模中不得不设计数据库模 型。本质上来说,设计过程中涉及具体的对象构建前把我们的思路写在纸上, 或者可能移动一些零件和部件以获取他们期待的设计。而一般的土木工程师 (开发人员)可能不会关注设计数百万吨的混凝土的预制结构。就类似数据库 模型的建立,你需要在构建之前和开始填充数据以及连接到应用程序之前建立 他的数据库模型。 数据库的设计是如此的重要因为所有应用程序都是针对数据库模型设计的,他们完全依赖于底层数据的结构。如果数据库模型在后一阶段有所改变,所有以数据库模型为基础的任何东西都有可能需要改变甚至全部重写。他们就需要非常大的财力和精力花费。设计数据库模型我们通常需要使用一些工具,流程图,图片,以及实体关系图(ERD)和任何能帮助我们确定设计思路的东西。 b) 确定(实现)的目标 确定目标可能是一个最重要的任务做任何项目的规划

hibernate.cfg.xml配置

江枫思渺然 提交于 2019-12-19 05:22:01
hibernate.hbm2ddl.auto 配置: create: 每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。 create-drop : 每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。 update: 最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据 model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等 应用第一次运行起来后才会。 validate : 每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。 来源: https://www.cnblogs.com/panxueji/p/3149277.html

Mysql数据结构

房东的猫 提交于 2019-12-17 10:31:35
文章目录 数据页 数据库中的存储结构 数据页的结构 从数据页结构的角度看B+树 结构-决定特性 磁盘IO 数据库缓冲池 缓冲池的一些命令查看 数据页加载的三种方式 结构-决定特性 数据页 数据库中的存储结构 记录是按照行来存储的,但是数据库的读取并不以行为单位,在数据库中,不论读一行,还是读多行,都是将这些行所在的页进行加载。也就是说,数据库管理存储空间的基本单位是页(Page)。 一个页中可以存储多个行记录(Row),同时在数据库中,还存在着区(Extent)、段(Segment)和表空间(Tablespace)。行、页、区、段、表空间的关系如下图所示: 页(Page) :用来存储数据表达形式行的空间,一页可以存在多个行,每一种数据库或数据引擎对于页的大小定义是不一样的,Sql Server的页大小为8K,、Oralce 支持的块大小为 2KB,4KB,8KB,16KB,32KB 和 64KB、InnoDB为16K。 区(Extent) :是比页大一级的我存储结构,在InnoDB引擎中,一个区会分配64个连续的页,不同的引擎上的页默认大小不一致,在InnoDB默认大小为16KB,一个区的大小也就是1M 段(Segment) :是由一个区或多个区组成,段并不需要区是连续的,段是数据库的分配单位,创建表的时候会创建一个表段,创建一个索引的时候会创建一个索引段。 表空间

MySQL的库表详细操作

南楼画角 提交于 2019-12-17 03:37:16
一 库操作 1、创建数据库      1.1 语法       CREATE DATABASE 数据库名 charset utf8;      1.2 数据库命名规则       可以由字母、数字、下划线、@、#、$       区分大小写       唯一性       不能使用关键字如 create select       不能单独使用数字       最长128位 基本上跟python或者js的命名规则一样 2、数据库相关操作     也是一些基本操作,和我们之前说的差不多。 1 查看数据库 show databases; show create database db1; select database(); 2 选择数据库 USE 数据库名 3 删除数据库 DROP DATABASE 数据库名; 4 修改数据库 alter database db1 charset utf8;   关于库的内容,咱们就说这些吧,哈哈,有点少是吧,不是咱们的重点,来看下面的表操作~~~ 二 表操作 1、存储引擎     存储引擎即表类型,mysql根据不同的表类型会有不同的处理机制,关于存储引擎的介绍看我这篇博客: https://www.cnblogs.com/changxin7/p/11525457.html 2、表介绍     表相当于文件,表中的一条记录就相当于文件的一行内容

mysql 库 行 列的 操作使用

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-16 22:32:33
-----------------------------------------------------------------------------时间不等你,下一刻,全是新的.每一刻都让它变得有价值! ------------------------------------------------------------------- 1、创建数据库      1.1 语法        CREATE DATABASE 数据库名 charset utf8;      1.2 数据库命名规则       可以由字母、数字、下划线、@、#、$       区分大小写       唯一性       不能使用关键字如 create select       不能单独使用数字       最长128位       # 基本上跟python或者js的命名规则一样    2、数据库相关操作     也是一些基本操作,和我们之前说的差不多。 ------------------------------------------------------------------------------ 查看数据库 show databases; show create database db1; select database(); 选择数据库 USE 数据库名 删除数据库 DROP

数据库数据模型和系统结构

做~自己de王妃 提交于 2019-12-16 17:53:23
数据库中用数据模型来抽象、表示、和处理数据和信息。是现实世界的模拟。 要满足三方面的要求1能够比较真实的模拟现实世界 2 易于理解 3 便于计算机实现 1.1 两大类数据模型 (1) 概念模型也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。 (2) 逻辑模型和物理模型 1)逻辑模型主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现 2) 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。 客观到抽象过程:现实世界客观对象抽象为概念模型,然后把概念模型转化为DBMS支持的数据模型。 1.2 数据模型的组成要素 1)数据结构: 描述数据库的组成对象,以及对象之间的联系 。 是对系统静态特性的描述 。 2)数据操作: 对数据库中各种对象(型)的实例(值)允许执行的操作及 操作规则。 是对系统动态特性的描述 。 3)完整性约束条件 一组完整性规则的集合。 完整性规则:给定的数据模型中数据及其联系所具有的制约和储存规则 用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。 1.3 概念模型 信息世界中的基本概念 (1) 实体(Entity) 客观存在并可相互区别的事物称为实体。 可以是具体的人、事、物或抽象的概念。 (2) 属性

由代码生成数据库结构,保障设计正常传递到实现

给你一囗甜甜゛ 提交于 2019-12-14 10:51:55
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 我们常常使用代码生成工具来生成表结构。为什么不试试从代码来生成数据库表结构呢? 这个观点有些匪夷所思,但是熟悉Hibernate的同志应该有所体会。Hibernate有一个功能,叫做hbm2ddl,在系统启动时,Hibernate扫描hbm映射文件,检查数据库结构和hbm是否匹配,如果不匹配,则在数据库中增加hbm文件中描述的表或者字段。严格意义上来说,这不是从“代码”生成表结构,而是由“hbm配置文件”生成表结构。后来,当Hibernate支持注解功能后,hbm2ddl也会自动扫描EntityBean上的注解,来与数据库表结构进行匹配。所以,这个hbm2ddl,也算作从代码生成表结构。 回到原点,为什么需要从代码生成表结构的功能? 我们一般的开发过程,是先做了“数据库设计”,然后在数据库中建表,最后再编写java代码。数据库设计工具,一般提供生成表结构到数据库的功能,也提供生成和表结构对应的javabean功能。 【数据库】<-【数据库设计工具】->【JavaBean】 如果我们的数据库一次成型,永不改变,每个版本只做代码层面业务逻辑上的变动,那么上面的过程是比较完美的。 但实际上,作为一个长期维护的软件系统,数据库设计不变动,是几乎不可能的。那么,当开发下一个版本的时候,我们首先需要变动的是数据库设计文件

索引很难么?带你从头到尾捋一遍MySQL索引结构,不信你学不会!

落爺英雄遲暮 提交于 2019-12-14 09:32:08
前言 Hello我又来了,快年底了,作为一个有抱负的码农,我想给自己攒一个年终总结。自上上篇写了 手动搭建Redis集群和MySQL主从同步(非Docker) 和上篇写了 动手实现MySQL读写分离and故障转移 之后,索性这次把数据库中最核心的也是最难搞懂的内容,也就是索引,分享给大家。 这篇博客我会谈谈对于索引结构我自己的看法,以及分享如何从零开始一层一层向上最终理解索引结构。 从一个简单的表开始 create table user( id int primary key, age int, height int, weight int, name varchar(32) )engine = innoDb; 相信只要入门数据库的同学都可以理解这个语句,我们也将从这个最简单的表开始,一步步地理解MySQL的索引结构。 首先,我们往这个表中插入一些数据。 INSERT INTO user(id,age,height,weight,name)VALUES(2,1,2,7,'小吉'); INSERT INTO user(id,age,height,weight,name)VALUES(5,2,1,8,'小尼'); INSERT INTO user(id,age,height,weight,name)VALUES(1,4,3,1,'小泰'); INSERT INTO user(id

Oracle体系结构和用户管理

隐身守侯 提交于 2019-12-14 05:54:23
博文结构 Oracle数据库体系结构 Oracle物理结构 Oracle逻辑结构 Oracle内存结构 Oracle进程结构 创建用户并授权 一.oracle体系结构概述 Orcale体系结构 Oracle体系结构包含一系列组件。 如图显示了Oracle体系结构中的主要组件,包括实例、用户进程、服务器进程、数据文件及其他文件,如参数文件、口令文件 和归档日志文件等. 从图中可以看出,实例和数据库是Oracle数据库体系结构的核心组成部分,也是最重要的 两个概念, DBA -个很重要的工作就是维护实例和数据库本身的正常工作。 1.实例 Oracle实例是后台进程和内存结构的集合,必须启动实例才能访问数据库中的数据。Oracle 实 例启动时,将分配- -个系统全局区(SGA) 并启动一系列Oracle后台进程。Oracle 实例有两种类型: 单进程实例和多进程实例。单进程Oracle实例使用一个进程执行Oracle的全部操作,在单进程环境下 的Oracle实例仅允许- -个用户可存取。多进程Oracle实例(又称多用户Oracle)使用多个进程来执行 Oracle的不同部分,对于每个连接的用户都有一个进程。 2.数据库 数据库是数据的集合,物理上是指存储数据库信息的一组操作系统文件,每个数据库有-个逻 辑结构和一个物理结构。物理结构是指构成数据库的一组操作系统文件

数据库(表结构)设计技巧及注意事项

南笙酒味 提交于 2019-12-13 23:03:16
 当您在决定 开发 一个 数据库 管理项目时,最先着手的工作就应是数据库表结构的设计了。可以这么说,表结构的设计是开发数据库管理项目的基石,一个糟糕的表结构设计,可能会严重延误您的项目开发周期,使您大量的劳动时间为此付之东流。表结构设计是数据库逻辑设计的重要组成部分,直接影响到数据库的性能,所以小编在本文对数据库(表结构)设计技巧及注意事项做一个讲解!   1.表名一般以【模块名称_具体表名】来实现,同一个模块的前缀是一样的。( Oracle 大小写敏感,在SQL中可以不用"_",因为可以用大小写一起的写法。这也是可以的)   2.表名称不应该取得太长(一般不超过三个英文单词,不推荐使用中文拼音,总的长度不要超过30个字符)。表名使用英文的原因,有些项目有英文版的需要,或者这个项目是给外国做的时候,使用英文是基本的要求,应该说这是一个习惯问题,多学一点英文也不是坏事   3.不使用tab或tb作为表前缀(本来就是一个表,为什么还要说明)。   4.一些作为多对多连接的表,可以使用两个表的前缀作为表名:如:用户登录表User_Login,用户分组表User_GroupInfo,这两个表建立多对多关系的表名为:User_Group_Relation(关系统一用Relation)。注意一点,主键在做其他表的外键时,或者在被其他表引用时,字段说明和字段名尽量保持一致,比如发帖表BBS