티스토리 뷰

1. 데이터베이스와 데이터베이스 시스템

데이터 → 정보 → 지식

  • DB에 저장된 값 : 데이터
  • 데이터를 조회, 분석, 가공 : 정보
  • 정보를 해석, 축적 : 지식

데이터 분류

  • 정형 데이터
    • 구조화된, 2차원 테이블 ex) 엑셀
  • 반정형
    • 키-값 으로 유연하게 저장
    • json, xml
    {
    	"이름" : "오형준",
    	"나이" : 23,
    	"성별" : "남"
    }
    
    
  • 비정형
    • 이미지, 영상 등 구조 없고 자유로움
  • 범주형(카테고리로 나눌 수 있는지) vs 수치형(숫자)
    • 학번: 범주형
    • 시험점수: 수치형

!!!데이터 검색, 변경 빈도 많을수록 -> 구축 어렵고 -> 최적화 필요!!!

 

데이터베이스 개념

  • 공유 : 함께 소유, 이용하는 공통 데이터 - 여러 사용자 활용
  • 통합 : 최소의 중복만. 통제 가능 중복만 허용함 - 중복제거
  • 저장 : 하드디스크, 분산 서버에 저장됨, 영구적. - 영구적 보관
  • 운영 : 조직 기능 수행 위해 필요한 실시간 데이터 - 실시간 업무 활용

데이터베이스 시스템의 기본 구성요소

  • 데이터베이스 : 데이터들의 집합, 데이터가 저장되는 공간 
  • DBMS : 데이터베이스 관리 소프트웨어(사용자와 데이터베이스 연결)
  • 데이터 모델 : 데이터 구조, 관계, 제약조건을 표현하는 논리적 설계 방식 ex) ER모델(ERDiagram), 관계형 모델
  • 데이터베이스 사용자(user) : 일반사용자 vs 응용 프로그래머 vs sql 사용자 등등 레벨 다르게 적용
  • 인터페이스 : 언어(sql)와 응용 프로그램(학교 수강신청 시스템 등), DBMS와 사용자가 소통하도록 해주는 수단

2. 데이터베이스 시스템의 발전

  1. 소매상
  2. 소기업 - 파일 시스템, 초기 전산화
    • 데이터 중복, 공유, 보안문제 생김
  3. 중견기업 - 데이터베이스 구축, LAN 기술
    • db로 파일 시스템의 문제 해결
  4. 대기업 - 인터넷 통신(웹 데이터베이스 시스템)
  5. 분산 데이터베이스 시스템

3. 파일 시스템 vs DBMS

  1. 파일시스템 이전 VS 파일시스템 VS DBMS
    1. 파일 시스템 x : 프로그램 안에 데이터 저장
      • 데이터 추가 시 코드 수정하고, 다시 컴파일 하고… 불편하다.
    2. 파일 시스템 : 데이터를 파일에 저장. 프로그램은 파일을 읽어서 사용
      • 문제:
        • 데이터 중복: 여러 파일에 같은 데이터 존재하면 수정 시 데이터 불일치 생김
        • 파일 구조 바뀌면 (title, author → title, author, publisher) 코드 전부 수정해야 한다.
        • 여러 프로그램이 동시에 파일 쓰면 데이터 깨지는 문제
    3. DBMS : 데이터를 DB에 저장하고 DBMS 로 관리
      • 데이터 중복 최소화, 데이터 일관성 유지
      • 데이터 독립성 유지
      • 동시 접근 가능해짐
      • 보안 등등의 장점이 있다.
  2. DBMS 장단점
    1. 파일시스템의 장점은 dbms의 단점, 파일시스템의 단점은 dbms의 장점이 된다.
    2. 장점 : 
      1. 데이터 중복 통제
      2. 데이터 독립성 확보
      3. 데이터 동시 공유 가능
      4. 데이터 보안 향상
      5. 데이터 무결성(중복x) 유지 가능
      6. 표준화 가능
      7. 장애 발생 시 회복 가능
      8. 응용 프로그램 개발비용 줄어듦
    3. 단점 :
      1. 도입비용 많이 듦. 그래서 중소기업에선 oracle 도입 못함...
      2. 백업과 장애 회복 방법 복잡
      3. 중앙 집중 관리로 인한 취약점 존재
      4. 대규모 사용자의 동시 접속 or 복잡한 쿼리 처리 시 성능 저하 발생
      5. 설계, 운영, 최적화, 튜닝에 전문지식 필요, 효율적 관리 위해선 숙련된 DBA(DB Admistrator 관리자) 필요
  3. DBMS 발전 과정  

       1세대 : 네트워크 DBMS, 계층 DBMS

    • 네트워크 DBMS : 데이터베이스를 그래프 형태로 구성
    • 계층 DBMS : 데이터베이스를 트리 형태로 구성
    • 1세대는 트리나 그래프처럼 연결 구조로 관리. but 구조가 복잡, 사용이 어려웠다.
    2세대 : 관계 DBMS
    • 데이터베이스를 테이블 형태로 구성
    • 표 형태라 사람이 사용하기 훨씬 편해졌다.
    • 오라클, MS SQL 서버, 액세스, 인포믹스, MySQL, 마리아DB
    3세대 : 객체지향 DBMS, 객체관계 DBMS
    • 객체지향 개념을 데이터베이스에 반영, 완전 객체형 , 관계 + 객체 기능 혼합형
    • 객체지향 DBMS : 오투, 온투스, 젬스톤
    • 객체관계 DBMS : 오라클??
    4세대 : NoSQL / NewSQL
    • 문장, 동영상을 위한 비정형 데이터 처리용
    • NoSQL : 비정형 데이터를 처리하는데 적합, 확장성 뛰어남 ex) 몽고디비, H베이스, 카산드라, 레디스, 네오포제이, 오리엔트DB
    • NewSQL : 관계 dbms의 장점 + NoSQL 확장성 및 유연성 ex) 구글 스패너, 볼트DB, 누오DB

 


4. 데이터베이스 시스템의 구성

데이터베이스 시스템 5구성 - 데이터베이스/DBMS/데이터 모델/데이터베이스 사용자/인터페이스(언어,응용프로그램)

  • 언어 sql : ddl, dml, dcl, 핵심(select(무엇을) - from(어디서) - where(어떤 조건인지) 로 돼있는 질의문)
SELECT bookname, publisher FROM Book;
Book테이블에서 모든 bookname, publisher를 검색한다. 


SELECT bookname, publisher
FROM Book
WHERE price >= 10000;
조건은 where 뒤에
  • DDL 데이터 정의어 : DBMS에 저장된 테이블 구조를 정의 - 개발자용
테이블 생성
CREATE TABLE student (
    id INT,
    name VARCHAR(20)
);

테이블 삭제
DROP TABLE student;

테이블 구조 변경
ALTER TABLE student ADD age INT;
  • DML 데이터 조작어 : 데이터를 검색, 삽입, 삭제, 수정하는 데 사용 - 일반 사용자용, CRUD
데이터 삽입
INSERT INTO student VALUES(1, '테이');

데이터 수정
UPDATE student
SET name = '짱구'
WHERE id = 1;

데이터 삭제
DELETE FROM student
WHERE id = 1;

데이터 검색
SELECT * FROM student;
  • DCL 데이터 제어어 : 내부적으로 필요한 규칙이나 데이터 사용 권한 관리하는 데 사용 - 개발자용
유저에게 student 테이블 조회 권한 부여
GRANT SELECT ON student TO user1;

권한 제거
REVOKE SELECT ON student FROM user1;
  • 데이터베이스 사용자

  • 데이터베이스와 DBMS
    • 데이터베이스 : 데이터 집합, 데이터가 저장되는 물리적 저장소
    • DBMS : 데이터베이스 관리 운영하는 제어센터
  • 데이터 모델 : 주요 속성이 뭐고 등등을 생각하면 학생 테이블이란 게 → 이름, 학번, 학과로 이루어지게 됨.
    데이터 표현 위한 내부 방법. 현실 세계의 데이터를 데이터베이스 구조로 변환하기 위한 논리적 설계 방법
    • 관계 표현 방법
      • 포인터 사용 : 계층 데이터(트리 구조), 네트워크 데이터 모델(그래프 구조)
        • 포인터는 직접 주소를 명시하므로 프로그램 속도는 빠르지만 구조가 어려움. 개발속도 느림
      • 속성값 사용 : 관계 데이터 모델(테이블 구조) - 가장 많이 사
        • 속성 값(키 값)을 이용하여 관계 표현
        • 예: 학생 테이블에 강좌ID 저장
      • 객체 고유 식별자(oid) 사용 : 객체 데이터 모델(객체 구조)
        • 박지성은 5개 듣고, 김연아는 1개 들을 때 전체 열이 5개여야 되는데, 관계 데이터 모델은 이럴 때 비효율
          -> 객체 데이터 모델로 표현 가능
  • 데이터베이스의 개념적 구조????
    • 외부 단계(개별 사용자 관점), 개념 단계(조직 전체의 관점), 내부 단계(저장 장치의 관점) 로 나뉨.
      • 외부 단계 : 개별 사용자 관점 데이터베이스
        • 사용자나 응용 프로그램이 접근하는 계층
        • 전체 데이터베이스 중 필요한 논리적 부분만 제공
        • 사용자마다 다른 구조 가능 : 외부 스키마는 여러 개 존재 가능 ex) 학생 view / 교수 view / 행정 view
      • 개념 단계 : 조직 전체 관점의 데이터베이스 구조
        • 하나만 존재
        • DBA(데베 Administrator 데베 관리자)가 관리
        • 개념 스키마 : DB 전체 설계도 같은 것. 개념 단계에서 전체 데이터베이스의 논리적 구조를 정의한 것.
          • 전체 DB 논리 구조 정의
          • 데이터 관계 정의
          • 제약조건 정의
          • 보안 및 접근 권한 정의
      • 내부 단계 : 저장 장치의 관점
        • 물리적 저장 장치에 데이터가 실제 저장되는 방법
        • 하나의 데이터베이스에는 내부 스키마 하나만 존재.
        • 레코드 구조, 필드 크기, 인덱스, 데이터 레코드의 배치 방법, 데이터 압축
    • 스키마와 인스턴스
      • 스키마 : 구조
        • 테이블 header. 데이터베이스에 저장되는 데이터 구조와 제약조건 정의
      • 인스턴스 : 실제 저장된 값. 테이블에 저장된 행
    • 매핑(사상) 통해 각 단계 간 대응 관계 정의
      • 외부/개념 사상 : 외부 스키마와 개념 스키마 대응 관계 : 응용 인터페이스
      • 개념/내부 사상 : 개념 스키마와 내부 스키마 대응 관계 : 저장 인터페이스

  • 데이터 독립성 : 어떤 단계에 변경되어도 다른 단계에 큰 영향 안미치도록, 하위 단계의 내용 추상화해 상위 단계에 숨김 → 타 단계와 상호 간섭 없도록 : 추상화??
    • 논리적 데이터 독립성 VS 물리적 데이터 독립성
      • 논리적 데이터 독립성
        • 외부 ↔ 개념 사이 독립성
        • 조직 전체 관점(개념) 구조(스키마)가 변경돼도 외부 스키마(사용자 뷰, 관점, 구조)에는 영향 미치지 않도록
        • 예) 새 속성 테이블에 추가해도 기존 사용자 질의는 그대로 동작하게끔
      • 물리적 데이터 독립성
        • 개념 ↔ 내부 사이 독립성
        • 저장구조(내부 스키마)가 변경돼도 개념 스키마(조직 전체 관점, 구조)에 영향 미치지 않도록 지원
        • 예) 인덱스 구조 바꾸거나 저장방식 변경해도 논리적 구조는 동일하게끔

정리

 


+ 후속활동

1) DBMS 종류에 대한 국내 점유율 조사 및 선호도 조사

2024년 공공부문 정보자원 현황 통계에 따르면 오라클은 63.52%, 마이크로소프트는 16.03%라고 한다.

차세대 지방세 시스템, 티베로 DBMS로 안정 운영 지원…공공 국산 윈백 성공 사례 - 전자신문

 

차세대 지방세 시스템, 티베로 DBMS로 안정 운영 지원…공공 국산 윈백 성공 사례

티맥스티베로 데이터베이스관리시스템(DBMS)이 차세대 지방세입정보시스템에 도입돼 안정적으로 운영 중이다. 오라클 DBMS를 걷어내고 도입된 사례로, 기술력을 입증했을뿐 아니라 공공에서 국

www.etnews.com

선호도 측면:

안정성, 대규모 처리 능력이 중요한 환경에서는 Oracle이,

웹서비스나 학습용, 중소규모 프로젝트에서는 MySQL의 선호도가 높다고 한다. 

 

2) DB 자격증 조사

SQLD(SQL Developer개발자), SQLP(SQL 전문가)가 있다.

SQLD는 개발자, 입문자 정도의 SQL 활용 능력을 보고,

SQLP는 심화된 SQL 설계, 튜닝, 성능 최적화 역량을 검증한다고 한다. 

SQL[개발자] : 데이터자격시험

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함