강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

:: 데이터베이스의 구조 ::
작성자 : 13 김영철
등록날짜 : 2009.01.24 23:08
2,306

SQL Server 7.0 이전의 버젼에서는 데이터베이스를 만드는 과정과 관리하는 방법이 상당이 까다로웠습니다. 우선 디바이스를 만들고 그 안에 데이터베이스를 만들어야 했습니다. 그리고 필요에 따라 적당한 사이즈로 늘려 주어야 했으며, 한번 늘린 사이즈는 다시 줄이기가 너무 힘들었습니다. 하지만 SQL 7.0 버젼 부터는 그렇지 않습니다. 곧바로 원하는 사이즈로 데이터베이스를 만들 수 있으며, 사이즈는 자동으로 필요한 때에 증가가 되도록 할 수 있었으며 필요한 경우 사이즈를 줄일 수도 있습니다.

이제 곧 우리는 데이터베이스를 만들어보게 됩니다. 그 전에 데이터베이스가 무엇인지, 그리고 어떻게 구성이 되어 있는지 살펴보도록 하겠습니다.

1. 데이터베이스란?

데이터베이스란 무엇이가를 저장해 두는 곳이라고 우선 정의할수 있습니다. 이때 무엇인가에 포함되는 것은 테이블(Table), 뷰(View), 인덱스(Index), 저장 프로시져(Stored Procedure), 트리거(Trigger)와 같은 객체(Object)들 입니다.데이터베이스의 객체에 대해서는 예전에 간략하게 설명한적이 있습니다. 머지 않아 각각의 객체들에 대해서 엄청 많이 이야기하게 될것 같습니다.

2. 데이터베이스를 구성하는 파일

SQL Server의 데이터베이스는 운영체제 상에서 보면 확장자가 mdf(또는 ndf)와 ldf 인 파일로 존재하게 됩니다. 예를 들어 연습용 데이터베이스인 pubs 데이터베이스의 경우는 pubs.mdf와 pubs_log.ldf 두개의 파일이 존재합니다.

mcp6_002.gif

데이터베이스는 데이터와 로그로 분리되어 저장됩니다. 데이터의 경우는 mdf 확장자(또는 ndf)를 갖으며, 로그의 경우는 ldf 확장자를 갖고 저장됩니다. 확장자(mdf, ndf, ldf)는 반드시 정해진 것이 아니며 원하는 경우 바꿀 수가 있지만 되도록 그대로 사용하는것이 바람직합니다. 확장자를 봄으로써 어떤 역할을 하는 파일인지 구분을 할 수 있기 때문입니다. 만일 pubs.mdf를 pubs.doc 으로 한다면 워드파일이지 데이터 파일이라고 생각 할 수 없기 때문입니다.(만든 사람만 알 수 있겠지요)

다음의 그림은 데이터베이스의 구조를 간단히 보여주고 있습니다.

mcp6_001.gif

1) 데이터 파일(*.mdf, *.ndf)

실제 자료를 저장합니다. 기본적으로 데이터 파일은 하나만 있어도 되지만 필요하면 더 만들 수 있습니다. 처음 만들어진 파일이 mdf 확장자를 갖게 되며 추가되는 파일은 확장자가 ndf 가 됩니다.

2) 로그 파일(*.ldf)

로그는 트랜잭션 처리와 시스템에 문제가 발생했을 때 복구를 위해 사용됩니다. 보통 데이터 파일의 25% 정도의 사이즈를 갖습니다.

3. Page와 Extents

저는 계산하는 것을 참 싫어 합니다. 하지만 여기서는 약간의 계산을 해보고자 합니다.

1) Page

데이터는 8KB 단위의 블럭을 단위로 저장되는데 이를 페이지(Page)라고 합니다. 결과적으로 데이터베이스는 1MB에는 128Page를 저장 할 수 있게됩니다. 하나의 Row는 여러개의 Page에 걸쳐 저장 될 수 없고 단 하나의 Page에만 저장 될 수 있습니다. 이 사실을 통해 하나의 Row(데이터 레코드로 생각하셔도 됩니다.)의 최대 사이즈는 8060 바이트입니다. 계산해보면 8 X 1024 는 8192 입니다. 하지만 8192바이트를 Row가 전부 차지하지 못하는 이유는 몇가지 정보를 저장하기 위한 약간의 공간(8192 - 8060 = 132)이 필요하기 때문입니다. 간단히 설명한다면 페이지 헤더가 이 공간중에 96KB를 사용하게 되고 나머지는 각 Row가 저장되고 관리되기 위한 몇몇 정보를 기록하는데 사용됩니다.

2) Extent

테이블과 인덱스는 Extent에 저장됩니다. Extent란 8개의 연속된 페이지를 가리킵니다. 1 Page가 8KB 이므로 1 Extent는 64KB(8 KB X 8) 입니다.

와우!
이제 데이터베이스를 만들어 봅시다!

----------------------------------------------------------------------------------------

출처 : http://www.sqlworld.pe.kr 

 
"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
2715 MySQL 에서 사용되는 sql문 정리 M 최고의하루 12.19 2743
2714 [ MySQL ] MySQL 기본적으로 익혀야할 과제 M 최고의하루 12.18 2501
2713 [ MySQL ] MySql4.x / PHP4.x / Apache 한글깨짐 M 최고의하루 12.18 3257
2712 [ MySQL ] MySQL 5 한글 UTF8 한글 깨짐 분석 (Windows 용) M 최고의하루 12.04 5731
2711 MySQL 명령어 정리 M 최고의하루 12.04 2388
2710 MSSQL 페이징 13 김영철 01.24 2487
2709 mssql 암호화 13 김영철 01.24 2486
2708 mysql과 mssql의 변환시 유의사항 13 김영철 01.24 2673
2707 mssql 백업방법 13 김영철 01.24 2773
2706 데이터 정보 확인방법 13 김영철 01.24 2354
2705 MS-SQL JDBC "ResultSet Can Not Re-Read Row Data" 예외 처리 방법 13 김영철 01.24 3283
2704 IDENTITY 속성 13 김영철 01.24 2160
2703 Jsp + Mssql Long타입 데이타 사용시 문제점 13 김영철 01.24 2764
2702 PWDENCRYPT와 PWDCOMPARE를 통해 암호화 기능 13 김영철 01.24 3471
2701 MSSQL 기본값 13 김영철 01.24 3037
2700 :: 데이터베이스의 종류 :: 13 김영철 01.24 2350
2699 :: 데이터베이스의 객체 :: 13 김영철 01.24 2635
2698 :: Transact-SQL 이란 :: 13 김영철 01.24 2886
2697 :: 단순 SELECT 문 :: 13 김영철 01.24 2368
2696 :: WHERE 절 :: 13 김영철 01.24 2803
2695 :: ORDER BY, GROUP BY :: 13 김영철 01.24 2479
2694 :: 조인(Join) 이란? :: 13 김영철 01.24 2182
2693 :: 조인(Join)의 사용 예 :: 13 김영철 01.24 2343
2692 :: SELECT INTO 와 INSERT INTO :: 13 김영철 01.24 2575
열람중 :: 데이터베이스의 구조 :: 13 김영철 01.24 2307
2690 :: 데이터베이스 생성 :: 13 김영철 01.24 2112
2689 :: 데이터 무결성 :: [출처] :: 데이터 무결성 :: (쇼핑몰 대박못내는 진짜이유!) |작성자 프런티어 13 김영철 01.24 3177
2688 :: 인덱스(Index) :: 13 김영철 01.24 2091
2687 :: 뷰(View) :: 13 김영철 01.24 2817
2686 :: 저장프로시저 (Stored Procedure) :: 13 김영철 01.24 2784
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취