一、数据库系统架构:

外层(External Level)外层是提供给用户直接操作使用的

概念层(Conceptual Level)用来描述数据库中存放数据的类型、表之间的关系、高级的数据模型、用户的权限

内层(Internal Level)主要用来描述实际的数据库存储结构

映射(Mapping)提供需求和转换所需数据的过程

数据独立性(Data Independence):当数据有所变动时,不必改变其他的数据结构

二、设计数据库的范式

第一范式

第二范式

第三范式

BCNF范式

三、数据库管理

system

ora123

startup open orcl --权限不足

conn sys as sysdba

ora123 --已连接

startup open orcl  --无法启动

shutdown immediate

startup open orcl

扩展:以nomount方式打开数据库

以mount方式装载数据库

以parallel模式打开数据库

以exclusive模式打开数据库

三、关闭数据库4种方式:(请不要在oracle11g和oracle10g上测试shutdown ,shutdown normal命令,)

shutdown normal 申请进入的进程拒绝,正在运行的进程正常运行

shutdown immediate 比如有人正在买盗版光碟,此时工商执法人员来了,卖盗版光碟的小贩赶紧将钱退给此人,之后逃跑

shutdown abort 比如商场着火了,已经没有时间做任何事情了,得赶紧逃命了

shutdown transactional 申请进入的进程拒绝,正在运行但是不出来事务的杀死,正在处理事务的正常运行

四、设置数据库

五、建立数据库

约束条件的操作:启动、关闭、删除、验证

视图(View):

优点:它能限制数据的存取

它能让复杂的查询简单化

它为项目用户及应用程序提供数据的独立性

它能让使用者根据自己的特定标准存取数据

如果建立的是一个简单视图,则可以直接指向DML语法

如果建立的是一个复杂视图,则在执行DML时,有以下限制:

1、不能添加数据

2、不能修改数据

3、不能删除数据

序列(Sequence)

事务处理:

事务本身具有4个ACID特征:原子性,一致性,隔离性或者独立性,持久性

事务只能针对DML操作语言实现,对DDL操作不起任何作用

锁:--行级锁定(记录锁定)  隐式地实现记录的锁定   被称为排他锁

--表级锁定  与行级锁定的自动锁定相比,该锁定需要用户明确地使用LOCK TABLE语句手工锁定

表级锁定又分为:行共享锁 ROW SHARE

行排他锁  ROW EXCLUSIVE

共享锁 SHARE

共享排它锁

排它锁

解除锁定:ALTER SYSTEM KILL SESSION ‘SID,SERIAL#’

SID和SERIAL#需要通过管理员利用v$locked_object, v$session两个数据字典查询得到

替代变量

ACCEPT命令只能在脚本文件中使用:先建立一个脚本文件,而后使用" @ "命令执行脚本;使用ACCEPT命令时替代变量不区分大小写

数据字典:静态数据字典

动态数据字典

闪回技术(FlashBack):是oracle10g之后提供的一种新的数据保障措施,类似于windows操作系统的回收站功能

FLASHBACK TABLE 表名称 TO BEFORE DROP;

如果要彻底删除表,则执行语句:DROP TABLE 表名称 PURGE;

清空回收站:PURGE recyclebin;

索引:

B树索引(基于二叉树排序)

降序索引

位图索引:如果某一列上的数据都属于低基数列的时候使用

CREATE  BITMAP INDEX emp_deptno_ind ON emp(deptno);   在deptno字段上设置位图索引

函数索引

CREATE INDEX emp_ename_ind ON emp(LOWER(ename));

同义词:CREATE [PUBLIC] SYNONYM myemp for aa.emp;

Oracle 伪列:

NEXTVAL

CURRVAL

SYSDATE

SYSTIMESTAMP

ROWNUM  除了简单查询外,ROWNUM也同样用于复杂查询的操作

ROWID  oracle默认为每条记录分配一个唯一的地址编号,这个编号就是通过ROWID来表示的,所有的数据都利用ROWID进行数据定位

oracle系列--基础理论的更多相关文章

  1. Oracle系列:记录Record

    Oracle系列:记录Record   分类: [Oracle] (15) 版权声明:本文为博主原创文章,未经博主允许不得转载. Oracle系列:记录(Record) 一,什么是记录(Record) ...

  2. 足球和oracle系列(3):oracle过程排名,世界杯第二回合战罢到来!

    足球与oracle系列(3):oracle进程排名.世界杯次回合即将战罢! 声明:        这不是技术文档,既然学来几招oracle简单招式.就忍不了在人前卖弄几下.纯为茶余饭后与数朋库友的插科 ...

  3. .Net程序员学用Oracle系列(1):导航目录

    本人从事基于 Oracle 的 .Net 企业级开发近三年,在此之前学习和使用的都是 (MS)SQL Server.未曾系统的了解过 Oracle,所以长时间感到各种不习惯.不方便.怪异和不解,常会遇 ...

  4. .Net程序员学用Oracle系列(2):准备测试环境

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.创建说明 1.1.为什么要创建的测试环境? 1.2.了解 Oracle 实例的默认用户 2.创建环境 2.1.创建基本环境 ...

  5. .Net程序员学用Oracle系列(6):表、字段、注释、约束、索引

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.表 1.1.创建表 1.2.修改表 & 删除表 2.字段 2.1.添加字段 2.2.修改字段 & 删除字段 ...

  6. .Net程序员学用Oracle系列(7):视图、函数、过程、包

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.视图 1.1.创建视图 2.函数 2.1.创建函数 2.2.调用函数 3.过程 3.1.创建过程 3.2.调用过程 4.包 ...

  7. .Net程序员学用Oracle系列(8):触发器、任务、序列、连接

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.触发器 1.1.创建触发器 1.2.禁用触发器 & 启用触发器 & 删除触发器 2.任务 2.1.DBMS_ ...

  8. .Net程序员学用Oracle系列(9):系统函数(上)

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.字符函数 1.1.字符函数简介 1.2.语法说明及案例 2.数字函数 2.1.数字函数简介 2.2.语法说明及案例 3.日期 ...

  9. .Net程序员学用Oracle系列(10):系统函数(下)

    <.Net程序员学用Oracle系列:导航目录> 本文大纲 1.转换函数 1.1.TO_CHAR 1.2.TO_NUMBER 1.3.TO_DATE 1.4.CAST 2.近似值函数 2. ...

随机推荐

  1. Eclipse最有用的快捷键

    编辑 Ctrl+1 快速修复(最经典的快捷键,就不用多说了,可以解决很多问题,比如import类.try catch包围等) Ctrl+Shift+F 格式化当前代码 Ctrl+Shift+M 添加类 ...

  2. iOS中FMDB和GCD剖析

    转载至:http://www.cocoachina.com/industry/20130819/6821.html 英文链接:https://github.com/ccgus/fmdb 由于FMDB是 ...

  3. URL 传+号到后台变空格问题解决方案

    今天巧合遇到这个问题,下面是网上找的解决方案. 原文:http://blog.sina.com.cn/s/blog_a0949eec01010xta.html 今天在调试客户端向服务器传递参数时,参数 ...

  4. String Matching Content Length

    hihocoder #1059 :String Matching Content Length 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 We define the ...

  5. 关于数据结构的10个面试题(c语言实现)

    关于数据结构的10个面试题(c语言实现) 2010-04-21 22:17 5702人阅读 评论(0) 收藏 举报 数据结构面试c语言bttree 1.         输入一个链表的头结点,从尾到头 ...

  6. 管理Fragments(转)

    转:原文链接 http://www.cnblogs.com/mengdd/archive/2013/01/09/2853254.html 管理Fragments FragmentManager 为了管 ...

  7. [转]makefile文件的编写规则及实例

    http://xueqi.iteye.com/blog/1567866   1.一个简单的makefile例子   假设一个程序有两个文件file1.c,file2.c,每个文件都包含head.h,生 ...

  8. std::string

    /************************************************************************* > File Name: string.cp ...

  9. 配置cinder使用NFS后端

    首先先使用“cinder delete”命令删除所有实例,释放磁盘空间. 停止cinder服务:service openstack-cinder-api stopservice openstack-c ...

  10. Linux操作系统入门教程

    http://www.linuxidc.com/Linux/2015-07/120815p8.htm