데이터베이스 개념과 용어정의

데이터베이스(DataBase)

 

여러 사람에 의해 공유되어 사용될 목적으로 통합하여 관리되는 데이터의 집합을 말합니다.

 

자료항목의 중복을 없애고 자료를 구조화하여 저장함으로써 자료 검색과 갱신의 효율을 높입니다. 현대적인 의미의

데이터베이스 개념을 확립한 사람은 당시 제너럴일렉트릭사()에 있던 C. 바크만으로 그는 1963 IDS(Integrated Data Store)라는 데이터베이스 관리시스템을 만들었습니다.

 

논리적으로 연관된 하나 이상의 자료의 모음으로 그 내용을 고도로 구조함으로써 검색과 갱신의 효율화를 꾀한 것입니다.

, 몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의

집합체라고 할 수 있습니다.

 

데이터베이스는 왜 사용하는가?

 

데이터베이스란 다수의 사용자가 사용하는 데이터들의 공유와 운영을 위해 저장해 놓는 공간을 말합니다.

프로그램을 만들다 보면 프로그램 사용자들에 의해 생성된 데이터, 프로그래머가 필요에 의해 프로그램에 넣어놓은

데이터 등 필연적으로 많은 데이터들이 생성 되는데 데이터베이스를 사용하지 않으면 이 데이터들은 프로그램을

종료하는 순간 전부 날아가게 됩니다. 이런 현상을 방지하기 위해 데이터들을 데이터베이스에 넣고 보관하는 방법을

사용합니다.

 

데이터베이스 관리 시스템(DBMS)를 쓰지 않는다면

 

·         다수의 사람이 데이터를 공유하기 어렵다

 

·         대량의 데이터를 다루기 어렵다 (txt, xls )

 

·         읽기/쓰기를 자동화하려면 프로그래밍 기술이 필요하다

 

·         만일의 사고에 대응하기 어렵다 (보안, 백업)

 

DBMS(DataBase Management System)

 

데이터베이스를 관리하는 시스템을 이야기 합니다. 크게 관계형 데이터베이스, 객체지향 데이터베이스 등으로 나뉘고

주로 사용하는 관계형 데이터베이스의 대표적인 DBMS로 오라클(ORACLE), MS-SQL, MY-SQL 등이 있습니다.

 

DBMS의 주요기능들을 살펴보면 다음과 같습니다.

 

l  데이터의 추가/삭제/수정/조회

 

l  데이터 무결성 유지

 

l  트랜잭션 관리

 

l  데이터 백업 및 복원

 

l  데이터 보안

 

예로 고객 명함관리 자료의 구조를 확인해 보겠습니다.

 

데이터베이스1.gif

 

이렇게 일정한 양식으로 자료가 구성되었을 때 '구조적'이라고 부릅니다이런 형태를 테이블이라고 하고, 각 행(Row)의 자료를 레코드(Record)라고 부릅니다. 예시된 표에서는 7 레코드가 있습니다. 또 각 열(column)을 필드(항목, Field)라고 한다. 첫 줄은 필드의 이름입니다.

 

데이터베이스 용어정리

l  테이블(Relation)

   테이블은 빠른 참조를 위해 적당한 형태로 자료를 모아 놓은 것입니다.

    관계 데이터 베이스 모델(relational data base model)에서 자료의 구조를 2차원의 표로 나타낸 것입니다. , 행과 열의

   형태로 관리되며 키를 지정함으로써 원하는 자료를 빠르고 쉽게 찾아 낼 수도 있습니다. 예를 들어 인사 기록 파일이

   있다면 각 사람에 대하여 이름, 사원번호, 나이 등이 필드가 될 수 있습니다. 또 이러한 필드가 여러 개 모여 한 사람 분의       자료가 된 것이 레코드입니다. 레코드가 모여 인사관리 테이블이 됩니다.

 

l  칼럼(Attribute)

   각 칼럼(Attribute)들은 이름과 데이터타입 그리고 데이터크기로 이루어져있습니다. 데이터타입의 경우 RDBMS

   종류에 따라 다를 수 있습니다예로 MY-SQL에서는 Integer 타입이 oracle에서는 number 타입으로 사용됩니다.

 

l  레코드

   정보를 처리하는 기본적인 단위로 하나 이상의 항목(field 또는 item)의 모음입니다

 

l  도메인(Domain) 

   각 속성(Attribute)들이 취할 수 있는 같은 타입의 원자 값들의 집합. , 한 속성(Attribute)에 나타날 수 있는 값의 범위.

    예를 들면 학년 속성은 1~6까지의 값을 가질 수 있고 이를 도메인이라 합니다. 나중에 언급되겠지만 데이터베이스는

   도메인과 관련된 합계, 평균, 레코드갯수 등의 계산을 행하는 함수(도메인 계산함수)를 지원합니다

 

l  엔티티(Entity)

   사람, 장소, 사물, 사건 등과 같이 독립적으로 존재하면서 고유하게 식별이 가능한 실 세계의 개체입니다

    예를 들어, 사원번호가 2106이고 이름이 홍길동인 사원, 과목 코드가 CS372인 데이터가 있습니다. 이렇게 실체가

   있는 것뿐만 아니라 추상적인 것도 있습니다. 프로젝트 번호가 P101인 프로젝트, 학과 번호가 D315인 학과는 추상적인

   개념의 엔티티가 될 수 있습니다. 엔티티는 엔티티 집합들로 분류됩니다.

 

l  스키마(Schema) 

   자료를 저장하는 구조와 표현법을 정의한 것을 뜻합니다. 메타데이터(Metadata)라고도 합니다. 메타데이터는

   어떤 목적을 가지고 만들어진 데이터라고 정의합니다. 예를 들어 홍길동, 1993-04-02이라는 데이터가 있을 경우에

   이는 이름, 생일 이라는 스키마로 설명할 수 있습니다.

 

l  인덱스

   데이터베이스 인덱스란 데이터베이스 테이블에서 데이터 검색 작업의 속도를 향상시키는 데이터 구조입니다.

   교과서를 읽다가 어떤 개념에 대한 설명을 찾는다고 상상해보십시오 - 그런데 교과서에 색인이 없습니다 !

    여러분은 필요한 정보를 찾을 때까지 표지부터 책 전체를 다시 훑어야 할 겁니다. 책의 끝부분에 있는 색인은

   관련 정보가 있는 페이지를 빨리 찾을 수 있게 해줍니다.

 

l  Key

   한 테이블에서 각각의 행을 유일하게 식별하기 위해 사용하는 하나 혹은 그 이상의 칼럼들의 집합.

 

n  유일성과 최소성

 

Ø   유일성: 하나의 키로 어떠한 행을 바로 찾아낼 수 있는 성질. ex) 주민등록번호

 

Ø   최소성: 레코드를 식별하는데 꼭 필요한 속성들로만 구성되어 있는 성질.

 

     예를 들면   {주민등록번호 + 학번}은 최소성을 만족시키지 않는다. 주민등록번호로만 행을 구분할 수 있기 때문입니다.

 

n  키의 종류

 

Ø   슈퍼 키(Super Key): 유일성을 만족하는 키(Super Key) 예를 들면 {학번 + 주민등록번호}

Ø   복합 키(Composite Key):    2개 이상의 칼럼을 사용한 키.

Ø   후보 키(Candidate key):   유일성과 최소성을 만족하는 키. 기본 키가 될 수 있는  후보이기 때문에 후보 키라고 불립니다.         예를 들면, 주민등록번호, 학번 등

Ø   기본 키(Primary key):  후보 키에서 선택된 키. NULL값이 들어갈 수 없으며, 기본키로   선택된 속성(Attribute)

    동일한값이 들어갈 수가 없습니다.

Ø   대체 키(Surrogate key):  후보 키 중에 기본 키로 선택되지 않은 키.

Ø  외래 키(Foreign Key): 어떤 테이블(Relation) 간의 기본 키(Primary key)를 참조하는 속성입니다

     테이블(Relation)들 간의 관계를 나타내기 위해서 사용됩니다.

 

 

데이터베이스2.png

 

RDBMS의 종류

어떤 RDBMS를 쓰는지에 따라 SQL 문법이 조금씩 달라질 수 있습니다. 많이 사용하는 RDBMS의 종류는 다음과 같습니다.

·         Oracle DB - 가장 오래되었고 신뢰도도 높습니다. 뛰어난 기술력과 안정성을 가지고 있습니다. 대규모의 애플리케이션, 특히 은행 업계에서 쓰이며, 유료로 사용해야 합니다.

 

 

·         MySQL - 오픈 소스이기 때문에 널리 쓰입니다. 웹 개발, 특히 PHP를 이용한 개발에 흔히 쓰입니다. 오라클이 인수한 후 불안감 때문에 다른 곳으로 넘어가는 경우가 종종 보입니다.

 

 

·         Maria DB - 오라클이 MySQL을 인수하면서 라이선스 문제가 불확실해지자, 이에 반발하여 만들어졌습니다. MySQL 5.5를 기반으로 만들어져 사용법이 거의 유사하고 호환성도 뛰어납니다.

 

·         PostgreSQL - 버클리 대학의 프로젝트로 만들어진 오픈 소스 ORDBMS입니다. (ORDBMS: 객체-관계형 데이터베이스 관리 시스템) SQL의 확장성과 표준을 준수하고, 풍부한 기능을 지원합니다.

 

       ·         SQL Server - 마이크로소프트가 개발한 RDBMS이기 때문에 윈도우 시스템 환경을 지원합니다.

       ·         SQLite - DB를 서버가 아닌 파일로 저장하는 DBMS입니다. 기기에 가벼운 DB를 저장하는 목적으로 설계되었으며             대표적으로 안드로이드, iOS, mac OS에서 사용됩니다.

 

  참고자료 :

  SQL vs NoSQL (orcle,msSQL.. vs. MongoDB) 차이와 장단점

   https://siyoon210.tistory.com/130?category=840254

 

  다운로드 : 7장 데이터베이스 개념과 용어정의.pdf

 

 

 


프로그래밍을 제대로 공부해보고 싶다면, 다음 순서로 진행하시는 것을 권장합니다.

 

  1. 프로그래밍 애피타이저 시리즈
  2. [동영상] 데브기어 델파이 기초 시리즈
  3. [오프라인 강의] 델파이/C++빌더 기초 강화
  4. [오프라인 강의] 델파이/C++빌더 윈도우 프로그래밍

 

 

 

 

 

 

 

 

 

 

 

 

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 8261
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 7960
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 10382
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 15470
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 17176
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 12915
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 32401
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 168045
1200 [프로그래밍 애피타이저] 8장 SQL 정의와문법 file 김원경 2020.04.09 487
» [프로그래밍 애피타이저] 7장 데이터베이스 개념과 용어정의 file 김원경 2020.04.09 656
1198 [고객 사례- POS, 주문, 델파이, 모바일] 마리스코스 - 레스토랑 주문 관리&전송 앱 관리자 2020.04.08 508
1197 IBLite 라이브러리 및 라이선스 배포하기 관리자 2020.04.08 241
1196 C++로 UI를 손쉽게 개발해봅시다! 관리자 2020.04.07 951
1195 [프로그래밍 애피타이저] 6장 프로시저와 함수 file 김원경 2020.04.07 816
1194 [프로그래밍 애피타이저] 5장 메모리의 구조 file 김원경 2020.04.07 537
1193 [프로그래밍 애피타이저] 4장 데이터타입 file 김원경 2020.04.07 276
1192 [프로그래밍 애피타이저] 3장 변수와 상수 file 김원경 2020.04.07 329
1191 [프로그래밍 애피타이저] 2장 컴파일,링크 및 운영체제(Operating System) file 김원경 2020.04.06 360
1190 [프로그래밍 애피타이저] 1장. 컴퓨터프로그램이란 ? file 김원경 2020.04.06 451
1189 2020 년 3 월 GM 업데이트 file 김원경 2020.03.30 615
1188 프로그래밍 언어 인기도 측정의 문제점 file 김원경 2020.03.27 434
1187 이 달의 기술자료 - 2020년 04월 험프리 2020.03.27 253
1186 파이어몽키를 사용하여 멀티 플랫폼/아키텍처 용 소프트웨어 개발 file 김원경 2020.03.25 502
1185 [고객 사례- 의료, 델파이] COVID-19 - 검사 결과 실시간 확인 앱 관리자 2020.03.25 679
1184 [고객사례-솔루션, 델파이] 비디오 오피스(VideoOffice) - 화상회의 솔루션 관리자 2020.03.25 475
1183 [고객사례-사물인터넷, 앱, 델파이] 로봇청소기 제어 앱 '니토 툴리오' 관리자 2020.03.24 279
1182 RAD Studio 10.3.3 안드로이드 앱에서 센서 컴포넌트 사용시 링크 오류 해결방법 김원경 2020.03.18 289
1181 [델파이 안드로이드 64비트 오류 수정] TInAppPurchase 컴포넌트 수정 file 김원경 2020.03.18 277