/ php / index / english dictionary

 회원가입 |  로그인

{Database의 구조}
( home ) 2003-04-23 23:47:57

여기서는 SQL에 대한 기초적인 내용을 소개합니다.
우선 SQL의 특성에 대해서 간단히 알아보죠


Segment


segment라는 것은 이름을 갖고 있는 저장 공간의 최소 단위입니다. 일반적으로 우리들이 부르는 Table, Index, Rollback은 Segment의 종류이죠.
여기서 설명한 Segment(table, index, rollback)은 os상의 file system에서는 그 실체를 확인할 수는 없습니다. ORACLE의 경우는 Data Directory를 이용해서알수있죠


Tablespace

Tablespace는 Segment가 들어있는 공간을 말합니다

Tablespace는 논리적인 공간으로 File System 상에 존재하는 것으로
Data File들로 구성됩니다. File system상에 물리적인 Disk 공간 즉, Data File을 확보하여 이 공간 내에 하나 이상의 Segment를 두게 됩니다
물리적인 Disk 공간인 Data File은 하나 이상이 모여 Tablespace를 이룩 ㅔ됩니다
즉, Tablespace 하나가 여러 개의 Data File로 구성될 수 있다는 것이죠

일반적으로 Data File을 확장자는 .dbf로 나타냅니다.



Database

Database는 여러개의 Tablespace가 모여 하나의 DB를 이루게 합니다

위에서 설명한 Database 구조에서 Tablespace를 이루는 Data File만 실제를 확인할 수 있으며 나머지는 Database 내부에서 관련된 정보를 갖고 있습니다. 하나의 Database를 이루는 Tablespace가 몇개이며(즉, Tablespace는 Disk상에 Physical하게 존재하지만, Database와 Segment는 Logical하게 존재하는 것입니다) Tablespace를 이루고 있는 Data File은 ORACLE의 경우 내부에 있는 v$datafile을 확인해 보면 됩니다

SELECT * FROM v$datafile;

2.2 OBJECT의 이해

ORACLE DATABASE에는 여러 가지의 Object가 있으며 이중 대표적인
Object는 Table, View, Synonym, Index, Sequence 등이 있습니다

테이블(Table)

기존의 파일시스템에서 데이터를 저장하는 곳은 파일이지만 데이터베이스에서는 테이블이라는 데이터베이스 구조에 데이터를 저장하게 됩니다. 모든 테이블은 이름으로 (예, STUDENT) 구분되며 데이터는 행(Row)이나 열(Column) 단위로 저장됩니다

하나의 열(Column)은 이름(예, NAME, AGE, SCORE), 데이터 타입(CHAR, NUMBER, DATE) 길이로 구성되며 열(Column)들이 모여 하나의 행을 구성합니다.

데이터의 정확성을 보장하기 위해서 테이블을 생성할 때 각각의 열에 제약사항을 지정할 수 있습니다. 파일시스템에서처럼 NUMBER 데이터 타입에 CHARACTER형태의 Data가 들어갈 수 없는 것 외에도 Null 값 체크, 일정한 값만 들어가도록 할 수도 있습니다



인덱스(INDEX)

테이블 내의 데이터를 조회하고자 할 때, 속도의 향상을 위해서 조건을 주고자하는 열의 순서적으로 정력하여 실 데이터가 있는 곳의 주소를 연결시켜 놓은 데이터베이스 구조를 인덱스라 합니다. 대량의 데이터에서 하나의 행을 찾고자할때는 굉장히 빠른 속도를 보장하지만, 데이터를 테이블로 삽입을 할 때는 데이터의 삽입과 동시에 인덱스를 재정력해야 합니다.


뷰(VIEW)

뷰는 기본이 되는 Table안에 저장되어 있는 Data를 다음과 같이 이유에서 열의이름,열의 개수, 행의 개수 또는 보는 사용자에 따라서 다른 형태로 보게 하므로 실제로 Data를 저장하는 구조는 아닙니다.

- 필요한 행과 열만을 사용자에게 보여주고자 할 때 (Security)
- 복잡한 조건을 매번 주지 않고자 할 때(Convenience)
- 열의 이름을 테이블에 영향을 주지 않고 바꾸고자 할 때(Perspective)
- 추후에 테이블의 열이 추가되어도 프로그램 변경을 하지 않기 위해


동의어(Synonym)

테이블을 편리하게 다른이름으로 참조를 하고자 할 때 생성합니다. student라는 테이블을 "학생"이라는 이름으로 동의어를 만들어서 사용할 수 있습니다


시퀀스(SEQUENCE)

학생의 번호, 반번호처럼 순차적으로 증가하거나 감소하는 번호를 부여하기 위해 생성하는 데이터베이스 구조입니다.

여기서 설명한 Object중 Tablespace내에 영역을 차지하는 Table과 Index는 Segment이나 View, Synonym, Sequence는 Data를 저장하는 것이 아닌 Object이므로 Segment가 아닙니다.





  목록

 . 
 php 게시판 소스 2 
 php 게시판 소스 1 
 php 게시판 
 게시판 짜기위한 게시판 ^-^; 
 러닝 php 책소스    : 스터디
 php 폼 자동완성  비밀글입니다  : 폼테그
 디데이 d-day 만들기    : asp
 파일 include 하기    : 팁
 php 간단한 카운터    : 팁
 입력폼에서 엔터키 치면 스크립트 실행하기.    : 팁
 response체, request객체, server객체    : asp
 링크    : asp
 반복되는 링크 묶기    : asp
 ....  비밀글입니다  : 공지
 텟넷 명령어    : 팁
 텔넷 접속    : 팁
 간단한 방명록 소스    : 스터디
 사이트 [1]   : 팁
 mysql 기본설정    : MySql
 ssh    : 팁
 zterm    : 팁
 자바 키워드    : 팁
 자바개발 프로그램설치    : 팁
 [강의] 게시판 목록을 보여주는 부분입니다..    : 스터디
 while 문으로 이미지쉽게보이기 [2]   : 팁
 php 7-2    : 스터디
 php 7-1    : 스터디
 php 6    : 스터디
 php 5    : 스터디
 php4    : 스터디
 php3    : 스터디
 php2    : 스터디
 php1 [3]   : 스터디
 CREATE TABLE    : MySql
 SQL 1    : 스터디
 문단 양쪽정렬    : 스터디
 초간단 php 랜덤 이미지 및 랜덤 배경이미지 소스    : 팁
  [정보] 초보분들을 위한 PC부품 구매를 위한 도우미    : 팁
 쿠키를 이용한 사용자 인증    : 팁
 테이블 색 다르게 지정 하기 다른방법    : 팁
 자동링크 function    : 팁
 [리눅스] 리눅스 기본명령어 50    : 스터디
 my sql    : MySql
 Database의 구조    : 스터디
 데이터 베이스 1    : 스터디

    목록            1

Copyright 1999-2018 Zeroboard / skin by Yoojunge