데이터베이스 개념(1) Study 2011. 4. 20. 11:41

데이터베이스의 개념중에 혼돈이 되는 개념이 바로

파일과 데이터베이스의 차이죠..

데이터베이스는 실제로는 파일로 구성이 되어 있습니다.

하지만, 일반 파일과는 다르죠.(직접 열어서 작업을 하지 않죠.. 대신 DBMS가 모든 작업을 대신해줍니다. 물리적인 파일에 대한 작업이죠..)

데이터베이스에서 핵심 기술중에 한가지가 바로 이 파일구조이죠.

파일내부를 어떻게 저장할 것이며, 성능이나 안정성 측면까지 고려하여야 하니까요.

또한 데이터베이스안에는 데이터와 다양한 객체들이 존재하게 되죠.

이것들에 대한 부분도 포함이 되어 있습니다.

결론을 지어보면

"데이터베이스는 디스크상의 물리적인 파일이나, 일반 파일과는 다른 개념입니다.

사용자는 DBMS를 통해서 데이터에 대한 핸들링을 부탁하고, 실제 DBMS가 물리적인 파일의 내용을 핸들링 하는 것입니다."

"유저부분은 권한에 대한 것입니다. 일반적으로 스키마라고 부르며, 사용자에 객체에 대한 권한을 부여하는 방식으로 구성이 됩니다. 데이터베이스에 이런 내용도 모두 저장이 되게 됩니다. 오라클의 경우 롤이라는 개념(여러 권한을 묶어 놓은..)이 존재하며 이를 통해서 사용자에게 여러 권한을 한번에 줄수가 있습니다."

"권한과 롤 부분은 업무특성이나 데이터의 접근권한을 먼저 산출하고 권한과 롤을 정의하고 사용자에게 부여하는 방식입니다. 물론 그 이전에 테이블이 존재하여야 합니다."

'Study' 카테고리의 다른 글

정보처리기사 기출문제( 2003 ~ 2010 )  (1) 2011.08.10
토렌트  (0) 2011.07.24
데이터베이스 개념  (0) 2011.04.20
Database란?  (0) 2011.04.20
공부하자~!!  (0) 2011.04.20
데이터베이스 개념 Study 2011. 4. 20. 11:40

우선 알아두셔야 할것은

파일에서의 논리적이라는 단어의 뜻과 DB에서의 논리적이란 단어의 뜻이 같지 않다는것입니다.
파일에서 말하는 논리적 구조라 함은 파일에 저장되어진 복잡난해한 bit들이 일정
한 규칙에 따라 번역되어 용도에 맞게 사용될수 있도록 형성되는것을 말하는 것입
니다. 물론 반대로 저장되는것을 포함하지요.

하지만 DB에서 말하는 논리적이라는 단어는 파일의 경우와 같은 기계적인 논리를
포함한(좀더 포괄적인) 데이터적 측면에서의 논리 즉 파일에서 읽혀져서 번역된
(실상 이러한 물리적 논리의 부분은 DBMS가 맡아서 처리합니다.) 정보들이 일정
한 규칙들에 따라서 어떠한 의미(가치)를 가지게 되는가를 말하는 것입니다.

간단한 예를 들어보자면 A라는 파일이 존재하고 그 파일에는 B, C라는 정보를 가
지고 있다고 할때 파일에서 말하는 논리성이란 A파일에 XByte~Xbyte 까지는 B,
XByte~Xbyte 까지는 C라고 변역될수 있게 되는 것을 말하는 것이면, DB에서의
논리성이란 B정보는 어떤 의미의 데이터 이고 C정보는 어떤 다른 의미의 데이터이
며 B와 C는 어떤 관계성을 가지고 있다 라고 하는 데이터적인 논리성이 더 추가
된 것을 말하는 것입니다.

실제로 이러한 데이터적 논리성을 배제한 순수한 파일만으로 구성되어진 데이터베이스를 파일 베이스 DB라고 칭하기도 합니다.

간단하게 말해서 파일은 데이터가 물리적으로 어떻게 저장되는가 말하는 것이라면
데이터베이스는 데이터들이 어떠한 의미와 목적, 가치, 관련성을 가지고 있는가
말하는것이라 하겠습니다.



유저와 데이터베이스의 관계

유저와 데이터베이스(DB 안에 생성되어진)는 어느것 하나에 종속적으로 구성되는것이 아니라 서로 독립적으로 구성됩니다. 각각의 정보는 DB안에서 DBA유저만
접근가능한 영역(데이터베이스 입니다 ^^;)에 저장, 관리되게 됩니다.

DB의 설치시 선언된 DBA유저는(오라클 : sys 유저, mysql : root 유저) 데이터
베이스의 생성, 수정, 삭제 및 유저의 생성, 수정, 삭제, 특정 유저와 특정
데이터베이스간의 접근허용여부, 특정 유저의 허용된 데이터 베이스에서의 권한
설정등등의 DB 전반에 관한 관리 권한을 가지는 유저입니다.
이러한 일련의 정보 역시 모두 DBA유저만 접근가능한 데이터베이스에 저장, 관리
됩니다. 또한 하나의 데이터베이스는 여러 유저들에게 접근이 허용될수 있으며,
반대로 하나의 유저는 여러 데이터베이스에 접근이 허용될수 있습니다.

즉 질문자님 께서 쓰셨던

'유저 이름과 데이터베이스는 완전히 분리된 것이어서...어떤 다른 유저 이름으로
접속해도 각각의 데이터베이스에서 설정된 권한의 유무에 따라 접속이 되고 안 되
고가 결정되는 것인가요'

이 맞는 개념 입니다만 단지

'???그럼 각각의 데이터베이스에는 권한 설정을 위한 별도의 테이블
이 자동으로 만들어 지는 건가요???'

여기에서 각각의 데이터베이스에 별도의 테이블이 자동 생성되는 것이 아니라,
DBA유저만 접근 가능한 데이터베이스에 유저의 권한, 생성된 데이터베이스,
연결관계 등등으로 이미 정의된 테이블들에 데이터로 저장되게 됩니다.

테이블을 쉽게 말하면, 동일한 속성을 갖는 데이터의 구조체를 말하는 것입니다.
유저는 아이디와 비번이라는 데이터가진다고 할때, 테이블은 C에서 구조체를 선언
하듯 테이블이름(구조체이름), 아이디(변수 아이디), 비번(변수 비번)으로 선언함
으로써 생성되며, 실제의 데이터들은 테이블의 정의 형태로 데이터를 저장하게
되는것입니다.



유저A 정보 테이블, 유저B 정보 테이블을 따로 생성하는게 아니라,
유저정보 라는 테이블에 유저A 정보, 유저B 정보, 유저C 정보 .... 식으로 저장
되는 것입니다.

이러한 테이블은 데이터베이스에 테이블 관련 권한을 갖는 유저의 의도와 목적, 데이터의 의미와 관련성, 시스템적인 필요 등에 따라서 유저가 만들게 됩니다.

데이터베이스는 DBA유저가 데이터 접근 및 관리 효율성, 보안, 시스템간의 상호
베타적인 데이터의 구분 등을 목적으로 생성하게 됩니다. 이에 따라 DBA유저는
각각의 데이터베이스에 접근, 테이블 관리, 데이터 관리 권한을갖는 유저를 생성
혹은 기존 유저에 권한을 부여하여주게 됩니다.

유저는 특정의 데이터베이스로 접근, 관리, 데이터 관리, 데이터 조회 등의 권한
을 DBA유저로 부터 부여받아 자신의 권한을 가지고 있는 데이터베이스로 접근,
부여받은 행위를 하게 됩니다.

간단하게 말하자면

테이블은 동일한 속성을 갖는 데이터들의 구조와 집합을 말하는 것이며
데이터베이스는 시스템 혹은 데이터적으로 관련성을 가지고 있는 데이터의
집합체 및 저장소를,
유저는 이러한 데이터베이스의 접근, 구조체 관리, 데이터 관리, 조회 등의 권한
을 갖는 사용자를 말하는 것입니다.

'Study' 카테고리의 다른 글

토렌트  (0) 2011.07.24
데이터베이스 개념(1)  (0) 2011.04.20
Database란?  (0) 2011.04.20
공부하자~!!  (0) 2011.04.20
키의 무결성  (0) 2011.04.20
Database란? Study 2011. 4. 20. 11:39

1. 데이터베이스란?

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

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

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

데이터베이스는 데이터와 로그로 분리되어 저장됩니다. 데이터의 경우는 mdf 확장자(또는 ndf)를 갖으며, 로그의 경우는 ldf 확장자를 갖고 저장됩니다.

확장자(mdf, ndf, ldf)는 반드시 정해진 것이 아니며 원하는 경우 바꿀 수가 있지만 되도록 그대로 사용하는것이 바람직합니다.

확장자를 봄으로써 어떤 역할을 하는 파일인지 구분을 할 수 있기 때문입니다.

만일 pubs.mdf를 pubs.doc 으로 한다면 워드파일이지 데이터 파일이라고 생각 할 수 없기 때문입니다.(만든 사람만 알 수 있겠지요)

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

) 데이터 파일(*.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) 입니다.

'Study' 카테고리의 다른 글

데이터베이스 개념(1)  (0) 2011.04.20
데이터베이스 개념  (0) 2011.04.20
공부하자~!!  (0) 2011.04.20
키의 무결성  (0) 2011.04.20
관계형 DB 구조  (0) 2011.04.20
공부하자~!! Study 2011. 4. 20. 11:38

안녕하세요 저는 it 업계에서 교육을 담당하고 있는 선생님입니다...

데이터베이스를 공부를 하실때 데이터베이스 관리시스템인 명령어만 익히시는거보다는 데이터 모델링, 표준화

된 관계형 데이터베이스언어인 SQL, 모델링 기법을 중점적으로 공부를 하시는게 좋을겁니다.


데이터 모델링을 익히고 나시면 어떤 데이터베이스 프로그램을 접하더라도 며칠만 메뉴얼을 보고 사용법을 익히

면 데이터베이스를 구축하고 관리를 하실수 있을겁니다.

그리고 필요한 정보를 체계적으로 관리하고 정보를 생산해 낼수 있는 능력이 쌓이게 됩니다.

SQL명령어을 익히면 오라클, MS SQL서버, IBM DB2등을 쉽게 익힐수가 있는데여 자주 쓰는 SQL언어는 외우지

마시고 많이 사용하시다보면 저절로 외워질겁니다. 나머지 명령어는 메뉴얼을 보고 어디에 있는지 찾아서 쓸 줄

만 아시면 될거 같습니다.

모델링 기법과 SQL명령어를 익히시고 나면 DBA라는 것을 배우시게 되는데여 Database Administration의 약자

로 데이터베이스 관리, 즉 데이터베이스 사용자 계정을 만들고 권한을 부여하고 자료의 백업, 복구, 튜닌등 전반

적으로 운영되는 상태에서 필요한 기능을 익히셔야 합니다.

이정도 사용하시게 되면 데이터베이스 전문가라고 저는 생각합니다.

위의 부분들은 오라클을 공부하실때 참고하시고여 기본적으로 배우시면 좋을게 ms sql, my sql 등을 미리 준비

하시는게 좋을거 같고여 차후 유닉스나 자바 언어를 보완하시면 님께서 원하시는 필드에서 오라클을 제대로 사용

하실수 있을거 같네여..

시험은 오라클 9i를 국제 자격증 시험센터에서 보시면됩니다. 오라클의 경우는 총 4과목 시험을 보시면 됩니다.

PL/SQL, FUNDAMENTAL 1, FUNDAMENTAL 2, PERFORMANCE TUNNING 과정입니다.

오라클을 공부 하실거면 오라클 지정 교육 센터에서 공부를 하셔야 합니다. 오라클 데이터베이스 자격증은 일반

학원에서는 인정해주지 않기 때문에 지정 업체에서 차근 차근 도전해보세요.

오라클 교육은 공인강사OCM 인지 공인 교재 사용하는지 반드시 알아보세요

마지막으로 제가 d/b 관리자라는 직업에 대해 근무 환경이나 연봉등에 대해 간략하게 설명을 드리도록

하겠습니다..



직업명 데이터베이스관리자

직업특성 및 하는 일

데이터베이스는 문자, 기호, 도형, 음성, 화상, 영상 등의 자료를 체계적으로 수집·축적하여 검색과 이용이 쉽도록 정리한 것이다.

데이터베이스관리자(DBA : DataBase Administrator)는 자료를 수집, 정리, 가공 및 입력하여 데이터베이스를 구축하고 관리하는 일을 하는 사람으로 대개 PL(Project Leader)급 정도가 업무를 담당하는 경우가 많다.

데이터베이스의 구축은 기획에서부터 설계, 구현, 운영 및 유지·보수 단계를 거쳐 완성되며 데이터베이스관리자는 자료의 정확성과 안전성 등을 유지하고 이용자가 쉽고도 정확하게 검색할 수 있도록 하며 자료의 손상이 없도록 유지하는 역할을 한다.


근무 환경

데이터베이스관리자는 주로 사무실에서 근무하지만 데이터베이스의 구축·설계를 위해 고객과 잦은 회의를 가지며 고객의 기업체에 파견되어 근무하기도 한다.

마감일자를 맞추기 위해 야근, 철야작업을 할 때도 있으며 문제가 발생하지 않고 데이터베이스 구축을 원활히 하기 위한 정신적 스트레스가 있을 수 있다.

되는 길

교육/훈련 데이터베이스관리자는 Oracle, MS SQL, My SQL, UnSQL 등의 데이터베이스관리시스템을 비롯해 데이터베이스의 운영과 관련한 하드웨어 및 소프트웨어에 대한 지식이 필요하기 때문에 전문대학 및 대학교에서 컴퓨터공학, 전산학 등을 전공하는 것이 도움이 됨

또한 데이터베이스에 대한 기본지식, 프로그램능력, 설계경험 등 상당한 경력을 필요로 하는 직업이기 때문에 다른 IT관련 직업에서 실무경험을 쌓은 후 진출하기도 함

관련학과 컴퓨터공학과, 전자공학과, 정보처리학과, 전자계산과, 전산공학과 자격증/면허 정보관리기술사, 정보처리기사(산업기사), 전자계산기조직응용기술사(기사, 산업기사), 정보기술산업기사 등의 국가기술자격과 Microsoft의 MCP, MCDBA, Oracle의 OCP-DBA,
IBM의 DB2 등의 외국자격

입직/진출분야 데이터베이스관리자는 전문데이터베이스 제작업체, 데이터베이스유통업체, 정보컨설팅업체, SI(System Integration)업체, 대량의 데이터를 관리하고 유통하는 공공기관 등에 진출할 수 있음

데이타베이스관리자는 고급인력이 종사하는 직업으므로, 업체에서는 대부분 전문지식과 풍부한 실무경력을 가진 사람을 선호함

승진/경력개발 데이터베이스 관리 업무에서부터 시작하여 구축, 설계 업무를 담당하며 경력이 쌓이면 데이터베이스와 관련한 컨설팅과 문제해결을 전문적으로 제시하는 정보기술 컨설턴트로 진출하거나 기술영업원으로 진출하기도 함

필요한 적성

데이터베이스 설계 및 관리의 목적을 잘 이해하여 최적의 분석과 디자인설계를 할 수 있는 논리적인 사고가 필요함데이터베이스는 조직의 핵심적인 정보에 해당되기 때문에 보안 등에 대한 책임감도 있어야 함

적합한 흥미 및 성격

성격 : 분석적 사고 ,혁신 ,꼼꼼함 ,책임/진취 ,신뢰성

흥미 : 현실형 ,탐구형

수입 상위25% 375 만원 임금평균 317 만원 하위 25% 267 만원

직업전망

증가(76%), 현상유지(10%), 감소(15%)

정보가 폭주하고 있는 가운데 필요한 정보를 효율적으로 찾는 것이 하나의 경쟁력이 되었으며 정보를 효율적으로 관리하고 이용할 수 있는 데이터베이스의 구축 및 관리에 대한 수요도 계속 늘어나고 있음

종사자 현황 약 2,384명, 연령별 분포 30대 많음, 대졸 85.6%

저의 답변이 많은 도움이 되셨으면 좋겠습니다 님께서 어떤 일을 하시든지 확신을

가지고 열심히 노력을 하셔야 성공하실수 있을꺼 같습니다...

'Study' 카테고리의 다른 글

데이터베이스 개념  (0) 2011.04.20
Database란?  (0) 2011.04.20
키의 무결성  (0) 2011.04.20
관계형 DB 구조  (0) 2011.04.20
DB 설계  (0) 2011.04.20
키의 무결성 Study 2011. 4. 20. 10:24

개체 무결성

- 기본키를 구성하는 속성은 NULL이나 중복값을 가질 수 없다.

참조 무결성

- 외래키 값은 NULL이거나 참조 릴레이션(외래키가 필요한 기본키가 있는 릴레이션)의 기본키 값과

동일해야 하며 참조할 수 없는 외래키 값은 가질 수 없다.

- 외래키와 참조하려는 테이블의 기본키는 도메인과 속성의 개수가 일치해야한다.

[출처] 키의 무결성|작성자 한량


'Study' 카테고리의 다른 글

Database란?  (0) 2011.04.20
공부하자~!!  (0) 2011.04.20
관계형 DB 구조  (0) 2011.04.20
DB 설계  (0) 2011.04.20
논리적 데이터 모델  (0) 2011.04.20