ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 학원 DAY27. 데이터베이스, SQL
    기록 2022. 10. 15. 01:20

    데이터베이스

    - 데이터베이스는 여러 사람들이 공유하고 사용할 목적으로 통합관리되는 정보의 집합이다.

    - 데이터베이스는 관련성 있는 데이터의 모음이다.

    - 은행, 예약, 검색, 쇼핑 등 일상 속에서 이용하고 있는 많은 온라인 서비스들에서 DB를 사용한다.

    - 데이터베이스는 반드시 데이터베이스 관리 시스템(DataBase Management System, DBMS)과 함께 한다. 

     

    데이터베이스 관리 시스템

    - 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다.

    - 대표적인 DBMS는 오라클, MYSQL, MS SQL Server, DB2, Maria DB, H2, HSQLDB 등이 있다.

    - DBMS는 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다.

    - 장점

       1. 자료의 통합성을 향상시킨다.

       2. 데이터의 접근성이 쉬워진다.

       3. 데이터의 통제가 강화된다.

       4. 보안이 강화된다.

    - DBMS를 통해 DB를 사용한다.

    - 관계형 데이터베이스(Relational DataBase)를 관리해주는 RDBMS가 가장 많이 사용된다. 

     

    데이터베이스 관리 시스템의 종류

    - 관계형 데이터베이스관리시스템(sql사용)

             Oracle, MySQL, MS SQL Server, DB2, H2, HSQLDB

    - No-SQL 데이터베이스관리시스템

            - 문서지향 데이터베이스 (Document DataBase)

                 Mongo DB (json형태로 데이터 저장, json이 모여있는게 컬렉션)

            - Key/Value 데이터베이스관리시스템

                 Redis

            - 컬럼기반 데이터베이스관리시스템

                 HBase, Cassandra

            - 그래프 모델 데이터베이스관리시스템

                 GraphQL

     

    사용자 관점에서의 데이터베이스

    - DB는 관련있는 데이터를 모아놓은 것이다.

    - 데이터가 많은 경우에 효율적으로 관리하거나 접근관리 등 여러가지 추가기능들을 지원한다.

    - 데이터베이스에서는 원하는 데이터를 가져올 때는 직접 데이터베이스에 요청하지 않고, DBMS를 통해서 질의하게 된다.

    - DBMS에 질의하기 위해서는 SQL이라는 언어를 사용한다.

    - DBMS는 입력된 SQL을 처리하고 필요하다면 DB에 접근하여 작업을 수행한다.

    - 데이터베이스는 구조화된 데이터를 저장한다. (열과 행을 갖고 있는 테이블(표)의 형태로 저장)

    - 현실 세계의 데이터를 데이터베이스에 저장하기 위해서는 모델링 작업이 필요하다.

    - 관계형 데이터베이스에서는 **객체-관계 모델링(Entity-Relationship Modeling)**방법으로 데이터를 모델링한다.

      (모델링한 결과를 표현하는데 사용하는 것이 ER다이어그램이다. 다이어그램을 먼저 만들고 다이어그램을 토대로 데이터베이스 안에 테이블을 생성한다.)

     

    데이터베이스의 특징

    - 실시간 접근을 지원한다.

    - 다수의 사용자 혹은 프로그램이 동시에 데이터를 이용할 수 있다.

    - 데이터에 대한 접근이 용이하다.

    - 레코드의 주소나 위치가 아닌 내용으로 데이터를 탐색할 수 있다.

    - 항상 최신의 데이터를 유지한다.

     

    관계형 데이터 모델

    - 관계형 모델에서는 이론적으로 데이터베이스를 관계(Relation)의 집합으로, 관계를 행(Tuple)의 집합으로, 행을 속성(Attribute)의 집합으로 본다.

    - 관계형 데이터베이스에서는 관계가 테이블(Table), 행이 레코드(Record), 속성이 컬럼(Column)으로 대치된다.

    - 관계라는 이름으로 불리는 이유는 속성과 행이 어떤 관계에 의해 모여진 집합이라고 보기 때문이다.

    - 관계형 데이터 모델에서는 속성은 해당 속성이 가질 수 있는 모든 값에 대한 도메인을 가지며, 원자적이어야 한다.

     (이름이라는 속성이 있으면 모든 이름을 가질 수 있는 것이 모든 값에 대한 도메인을 갖고 있다고 하는 것이고, 

      원자적이라는 것은 속성을 더이상 쪼갤 수 없다는 것임)

    - 관계형 데이터베이스에는 관계의 집합제약 조건의 집합으로 이루어져 있다. 

    (데이터의 무결성 확보를 위해서, 데이터의 유효성을 유지시키기 위해서 제약조건(예를 들어, 직위는 부장, 차장, 대리, 주임 외에는 못들어감)이 있다.)

    테이블

    - 데이터베이스에서 데이터의 실질적인 저장소 역할을 수행한다.

    - 2차원 표(테이블)의 형태로 데이터를 저장한다.

    - 하나의 데이터베이스는 여러 개의 테이블이 존재한다.

    - 구성요소

      행

               다른 행과 완전히 독립적이다.

               행의 순서는 중요하지 않으며, 행은 특정한 정보의 모든 데이터를 나타낸다.

      열

              데이터의 속성을 나타낸다(데이터의 이름, 데이터의 자료형)

              같은 열은 같은 종류의 값을 가진다.

              열은 서로 다른 이름을 가지고 있다.

              하나의 테이블에 이름이 같은 열은 존재할 수 없다.

              우리가 데이터를 저장하기 위해서는 열을 먼저 정의해야 한다. 열에다가 행을 추가한다.

     

    SQL (Structured Query Language 구조화된 질의 언어)

    - RDBMS를 통해 Database에 엑세스하기 위해 사용하는 특수 목적의 프로그래밍 언어다.

    - 구조화된 질의 언어로 형식이 정해져 있다.

    - 데이터베이스와 관련된 명령을 작성할 때 사용하는 언어

     

    - SQL의 종류

          - 데이터 조작 언어 (개발자가 주로 사용)

          - 데이터 정의 언어

          - 데이터 제어 언어

     

    - SQL의 장점

         - 배우기 쉽다. (사람의 언어와 유사하다.)

         - 효율적이다.

         - 기능적으로 완벽하다. (SQL을 사용하여 테이블의 데이터를 정의, 검색, 조작이 가능하다.)

            - 1970년에 E.F. Codd박사 데이터베이스 시스템을 위한 관계형 모델을 제안하는 논문발표

     

    ALTER SESSION SET "_ORACLE_SCRIPT" = TRUE;
    -- 오라클 12버전부터 사용자이름을 적을 때 일반영어단어로 적을 수 없다. 그래서 첫줄에 있는 걸 적어야 한다.
    
    CREATE USER hr IDENTIFIED BY zxcv1234;
    -- 오라클 사용자 계정 생성하기
    -- 사용자명 : hr, 비밀번호 : zxcv1234
    
    GRANT connect, resource, dba TO hr;
    -- 사용자에게 시스템권한 부여하기
    -- connect role: 데이터베이스 접속권한
    -- resource role: 데이터베이스 자원(테이블, 뷰, 시퀀스 객체)을 사용할 수 있는 권한
    -- dba role : 데이터베이스 관리자 권한

     

    '기록' 카테고리의 다른 글

    학원 day29. 데이터 변경, 삭제, JDBC  (0) 2022.10.18
    학원 DAY28. SQL  (0) 2022.10.15
    학원 DAY25~26. 예외 처리(2)  (0) 2022.10.12
    메소드 작성 관련  (0) 2022.10.08
    학원 DAY24. 맵 활용하기  (0) 2022.10.08

    댓글

Designed by Tistory.