본문 바로가기
프로그래밍 기초/Oracle

[Oracle] 비전공자를 위한 관계형 데이터베이스와 SQL 기초

by 제이투더문 2024. 6. 26.

 

목차

     

     

     안녕하세요. 작가 J입니다. 지난 시간에 데이터베이스의 기초 개념에 대해 알아보았습니다. 오늘은 관계형 데이터베이스와 SQL에 대해 자세히 알아보겠습니다.

     

    1. 관계형 데이터베이스의 구성 요소

     관계형 데이터베이스(Relational Database)는 데이터를 테이블 형식으로 구조화하여 저장하는 데이터베이스입니다. 각 테이블은 행(Row)과 열(Column)로 구성되어 있으며, 이 테이블 간의 관계를 통해 데이터를 관리합니다. 관계형 데이터베이스의 주요 구성 요소는 다음과 같습니다.

     

     

     

    • 테이블(Table): 데이터를 행과 열의 형태로 저장하는 구조입니다. 테이블은 각 열이 데이터의 특정 속성을 나타내고, 각 행이 하나의 데이터 레코드를 나타냅니다.학생ID이름나이전공예: 학생 정보 테이블(Student)
    • 열(Column): 테이블에서 데이터의 속성을 나타냅니다. 각 열은 특정 데이터 타입을 가지며, 테이블의 구조를 정의합니다.
      • 예: 학생 테이블의 열 (학생ID, 이름, 나이, 전공)
    • 행(Row): 테이블에서 하나의 데이터 레코드를 나타냅니다. 각 행은 테이블의 모든 열에 대한 값을 포함합니다.
      • 예: 홍길동 학생의 데이터 행 (1, 홍길동, 20, 컴퓨터공학)

     

     

    • 기본 키(Primary Key): 테이블에서 각 행을 고유하게 식별할 수 있는 열 또는 열의 조합입니다. 기본 키는 중복될 수 없으며, NULL 값을 가질 수 없습니다.
      • 예: 학생 테이블의 기본 키는 학생ID

     

     

     

     

    • 외래 키(Foreign Key): 한 테이블의 열이 다른 테이블의 기본 키를 참조하는 키입니다. 외래 키는 테이블 간의 관계를 정의합니다. 위 예시에서, 수강 테이블의 학생ID 열은 학생 테이블의 학생ID를 참조하는 외래 키입니다. 이 관계를 통해 각 수강 기록이 특정 학생과 연결됩니다.
      • 예: 학생 테이블과 수강 테이블 예시

     

    • 인덱스(Index): 테이블의 데이터를 빠르게 검색할 수 있도록 돕는 데이터 구조입니다. 인덱스를 사용하면 데이터 조회 속도가 향상됩니다. 인덱스는 읽어만 두고 넘어갑니다.

     

    2. 오라클 데이터베이스

     오라클 데이터베이스는 오라클사에서 개발한 상용 관계형 데이터베이스 관리 시스템(RDBMS)입니다. 오라클 데이터베이스는 고성능, 고가용성, 보안성, 확장성 등의 장점을 가지고 있어 다양한 산업 분야에서 널리 사용되고 있습니다.

     오라클 데이터베이스는 시장 점유율 1위를 차지하고 있으며, 전 세계적으로 가장 많이 사용되는 데이터베이스 관리 시스템 중 하나입니다. 다음은 오라클 데이터베이스를 사용해야 하는 이유입니다.

     

    (출처) https://db-engines.com/en/ranking

    • 고성능: 대규모 데이터를 빠르게 처리할 수 있는 고성능 엔진을 제공합니다.
    • 고가용성: 장애 발생 시에도 데이터베이스 서비스를 지속적으로 제공할 수 있는 고가용성 기능을 지원합니다.
    • 보안성: 데이터 암호화, 접근 제어, 감사 기능 등을 통해 데이터의 보안을 강화합니다.
    • 확장성: 다양한 하드웨어와 소프트웨어 환경에서 확장 가능한 구조를 제공합니다.
    • 표준 준수: SQL 표준을 준수하여 다른 데이터베이스 시스템과의 호환성을 높입니다.
    • 지원 서비스: 글로벌 수준의 기술 지원과 다양한 교육 자료를 제공하여 사용자가 쉽게 학습하고 문제를 해결할 수 있습니다.

     

    오라클 데이터베이스의 활용 예제

     

    오라클 데이터베이스는 다양한 산업 분야에서 사용됩니다. 몇 가지 활용 사례를 살펴보겠습니다.

    • 금융: 대규모 거래 데이터를 실시간으로 처리하고, 고객 정보를 안전하게 관리합니다.
      • 예: 은행의 거래 시스템에서 고객의 계좌 정보와 거래 내역을 오라클 데이터베이스에 저장하고 관리합니다.
    • 의료: 환자 기록, 진료 일정, 의료 데이터 등을 관리하여 진료 효율성을 높입니다.
      • 예: 병원의 환자 진료 기록을 오라클 데이터베이스에 저장하고, 의료진이 실시간으로 조회하여 진료에 활용합니다.
    • 전자상거래: 제품 정보, 고객 주문, 재고 관리 등을 통해 효율적인 쇼핑몰 운영을 지원합니다.
      • 예: 쇼핑몰에서 고객의 주문 내역과 재고 정보를 오라클 데이터베이스에 저장하고, 실시간으로 업데이트하여 재고를 효율적으로 관리합니다.

     

    3. SQL이란?

     SQL(Structured Query Language)은 관계형 데이터베이스를 관리하고 조작하기 위해 사용되는 표준 언어입니다. SQL은 데이터베이스에서 데이터를 검색, 삽입, 업데이트, 삭제하는 작업을 수행할 수 있는 다양한 명령어를 제공합니다. 주요 SQL 명령어는 다음과 같습니다. 지금은 읽고만 넘어가셔도 됩니다. 추후에 1개씩 다룰 예정입니다.

     

     

     

    • DML(Data Manipulation Language): 데이터를 조작하는 데 사용되는 명령어입니다.
      • SELECT: 데이터베이스에서 데이터를 조회하는 명령어입니다.
      • INSERT: 데이터베이스에 새로운 데이터를 삽입하는 명령어입니다.
      • UPDATE: 데이터베이스의 기존 데이터를 수정하는 명령어입니다.
      • DELETE: 데이터베이스에서 데이터를 삭제하는 명령어입니다.
    • DDL(Data Definition Language): 데이터베이스 구조를 정의하거나 변경하는 데 사용되는 명령어입니다.
      • CREATE: 데이터베이스 객체(테이블, 인덱스 등)를 생성하는 명령어입니다.
      • ALTER: 데이터베이스 객체를 수정하는 명령어입니다.
      • DROP: 데이터베이스 객체를 삭제하는 명령어입니다.
    • DCL(Data Control Language): 데이터베이스에 대한 접근을 제어하는 명령어입니다.
      • GRANT: 사용권한을 부여하는 명령어입니다.
        • 예: GRANT SELECT ON students TO 사용자명; (사용자에게 학생 테이블에 대한 조회 권한 부여)
      • REVOKE: 사용권한을 취소하는 명령어입니다.
        • 예: REVOKE SELECT ON students FROM 사용자명; (사용자의 학생 테이블에 대한 조회 권한 취소)
    • TCL(Transaction Control Language): 데이터베이스 트랜잭션을 관리하는 명령어입니다.
      • COMMIT: 트랜잭션의 변경 사항을 영구적으로 저장하는 명령어입니다.
      • ROLLBACK: 트랜잭션의 변경 사항을 취소하는 명령어입니다.
      • SAVEPOINT: 트랜잭션 내에서 롤백할 지점을 설정하는 명령어입니다.

    예제는 GRANT와 REVOKE만 조금 보겠습니다. 오라클 데이터베이스 설치 후 세팅에서 사용할 수도 있습니다. 

     

    마무리

     이 포스팅을 통해 비전공자들도 관계형 데이터베이스와 SQL의 기초 개념을 쉽게 이해할 수 있기를 바랍니다. SQL은 데이터베이스를 효율적으로 관리하고 조작할 수 있는 강력한 도구이며, 이를 잘 활용하면 많은 혜택을 누릴 수 있습니다.  오라클 데이터베이스는 다양한 산업 분야에서 필수적인 도구로 자리잡고 있으며, 이를 통해 고성능 데이터베이스 운영이 가능합니다.

    다음 포스팅에서는 오라클 데이터베이스 11g의 설치와 환경 설정, 그리고 SQL 명령어의 사용 방법에 대해 알아보겠습니다. 감사합니다!