IT★_공부

[DB] 데이터 베이스의 기본개념

문또끼 2022. 8. 25. 20:28

데이터 베이스란?

데이터를 저장하는 곳,

컴퓨터의 물리적인 저장소,

 💡 현실상에 존재하는 개념(객체)을 데이터베이스의 데이터로 '물리적으로' 관리하고 싶어서 저장하는 저장소.

 

 

 

학교에 3학년에 1반이 있고, 1반에는 20명의 학생들이 있다. 이 20명의 학생들은 각각 이름을 가지고 있고, 여자인지 남자인지 성별을 가지고 있고, 주소, 핸드폰 번호, 취미, 어디서 태어났는지, 가지고 있는 신발이 몇개인지 다양한 정보를 가지고 있다. 여기서 이 20명의 학생들은 실제로 존재하기 때문에 현실상에 존재한다고 말할 수 있다. 이 때 학생들의 이름,성별, 주소, 핸드폰번호, 취미,태어난곳, 신발이 몇개인지는 하나하나의 개념(혹은 객체)이라고 지칭할 수 있고 이러한 정보를 컴퓨터 안에 저장한다고 하면 그 저장되는 저장소를 데이터베이스라고 한다.

 

 

예를 들어보면,

3학년1반 을 데이터베이스에 저장한다고 하자. 위에서 본 객체처럼 3학년 1반에는 이름,성별을 , 주소, 핸드폰 번호, 취미, 본적, 신발의 갯수 등등 많은 정보를 가지고 있지만 내가 저장하고 싶은 것들을 따로 모아보자.

내가 저장하고 싶은 것들: 이름. 성별. 주소 . 핸드폰번호

여기서 정보들을 3가지로 나눌 수 있다.

  1. 3학년 1반
  2. 내가 저장하고 싶은 것들: 이름. 성별. 주소 . 핸드폰번호
  3. 김철수. 남자. 서울. 010 0000 0000 김철우. 남자. 서울. 010 1111 1111

여기서 ,

  • 3학년 1반 = Entity(table name), 데이터베이스에 저장하고 싶은 개념(객체)
  • (내가 저장하고 싶은 것들: 이름. 성별. 주소 . 핸드폰번호) = Attribute (column) 개념안에서의 속성들
  • 김철수. 남자. 서울. 010 0000 0000 = Tuple(row) 속성에 들어갈 값들.

Entity, Attribute, Tuple = 개념을 말할 때 사용하는단어.

table name, column, row = 쿼리 안에서 내용을 지칭할 때 사용하는 단어.

스키마(Schema) : DB 메타데이터 ** (Entity, Attribute, Relationship 등) 들의 집합.

메타데이터 : ' 어떤 개체의 속성에 대해 설명하는 데이터. 음악에서는 음악 신호의 물리적 특성이나 음향적 특성 그 자체가 아니라 음악의 작곡자, 제목, 박자, 조성 따위를 말한다.'

Relational DataBase Management System(관계형 데이터베이스 관리 시스템) -DataBase는 관계형 DataBase 라고 부른다. 이는 Entity간에 관련이 있기 때문이다. 따라서 Entity간의 관계를 정의하면서 값을 저장해 놓은 시스템을 RDBMS 혹은 RDB 라고 정의한다. ( 그리고 나는 RDBMS 중에서 oracle 을 이용해서 DB관리법을 공부할 것이다!)

만약 여기 EMP employee라는  사원의 정보를 가진 Entity와 DEPT department 라는 부서의 정보를 가진 Entity 가 있다. 이 둘 Entity 간의 관계,Relationship 를 정의하면서 값을 저장해 놓은 시스템을 RDBMS 라고 한다.

 

 

Transaction : DB를 변화시키기 위한 최소한의 작업 단위.

 

Transaction의 특징

1.원자성: 모두 반영하거나, 모두 반영하지 못하면 이전의 상태로 되돌아간다. (All or Nothing)

  1. 일관성: 실행 이전과 실행 이후가 일관적이여야한다.

3.고립성: 실행 도중 다른 transaction의 영향을 받아서는 안된다.

4.지속성: 성공시 결과는 영구적으로 반영되어야 한다.

Transaction의 특징의 이해를 돕기 위한 예시

A가 B 에게 인터넷뱅킹으로 100$ 을 건네주려고 한다. 송금을 성공적으로 완료하기 위해선,

첫번째로, A가 계좌에 접속해야 하고

두번째로 A계좌에서 100불이 출금되고

세번째로 B계좌에 100불이 입급되고

네번쨰로 B가 계좌에 접속해서 100불을 확인해야 한다.

Transaction의 특징

원자성: 송금의 과정중 하나라도 잘못되면 송금은 취소가 되어 B는 100불을 받을 수없다

  1. 일관성: A가 100불을 송금했는데 B가 10불만 받아서는 안된다

3.고립성: A가 100불을 두개의 계좌로 50불씩 나눠서 공금할 경우, 각각의 계좌가 송금 할 때 서로 다른 계좌에 영향을 주어선 안된다. (1번 계좌에서 50불 입금하는 중인데 2번 계좌에서 70불을 입금하게 되는 오류가 난다?? 안됨.)

4.지속성: B가 분명 계좌에 100불 들어온거 확인했는데 내일 계좌 확인해보니까 50불이 증발해서 50불만 남아있으면 안된다.

데이터를 저장하는 곳,

컴퓨터의 물리적인 저장소,

<aside> 💡 현실상에 존재하는 개념(객체)을 데이터베이스의 데이터로 '물리적으로' 관리하고 싶어서 저장하는 저장소.

</aside>

학교에 3학년에 1반이 있고, 1반에는 20명의 학생들이 있다. 이 20명의 학생들은 각각 이름을 가지고 있고, 여자인지 남자인지 성별을 가지고 있고, 주소, 핸드폰 번호, 취미, 어디서 태어났는지, 가지고 있는 신발이 몇개인지 다양한 정보를 가지고 있다. 여기서 이 20명의 학생들은 실제로 존재하기 때문에 현실상에 존재한다고 말할 수 있다. 이 때 학생들의 이름,성별, 주소, 핸드폰번호, 취미,태어난곳, 신발이 몇개인지는 하나하나의 개념(혹은 객체)이라고 지칭할 수 있고 이러한 정보를 컴퓨터 안에 저장한다고 하면 그 저장되는 저장소를 데이터베이스라고 한다.

예를 들어보면,

3학년1반 을 데이터베이스에 저장한다고 하자. 위에서 본 객체처럼 3학년 1반에는 이름,성별을 , 주소, 핸드폰 번호, 취미, 본적, 신발의 갯수 등등 많은 정보를 가지고 있지만 내가 저장하고 싶은 것들을 따로 모아보자.

내가 저장하고 싶은 것들: 이름. 성별. 주소 . 핸드폰번호

여기서 정보들을 3가지로 나눌 수 있다.

  1. 3학년 1반
  2. 내가 저장하고 싶은 것들: 이름. 성별. 주소 . 핸드폰번호
  3. 김철수. 남자. 서울. 010 0000 0000 김철우. 남자. 서울. 010 1111 1111

여기서 ,

  • 3학년 1반 = Entity(table name), 데이터베이스에 저장하고 싶은 개념(객체)
  • (내가 저장하고 싶은 것들: 이름. 성별. 주소 . 핸드폰번호) = Attribute (column) 개념안에서의 속성들
  • 김철수. 남자. 서울. 010 0000 0000 = Tuple(row) 속성에 들어갈 값들.

Entity, Attribute, Tuple = 개념을 말할 때 사용하는단어.

table name, column, row = 쿼리 안에서 내용을 지칭할 때 사용하는 단어.

스키마(Schema) : DB 메타데이터 ** (Entity, Attribute, Relationship 등) 들의 집합.

메타데이터 : ' 어떤 개체의 속성에 대해 설명하는 데이터. 음악에서는 음악 신호의 물리적 특성이나 음향적 특성 그 자체가 아니라 음악의 작곡자, 제목, 박자, 조성 따위를 말한다.'

Relational DataBase Management System(관계형 데이터베이스 관리 시스템) -DataBase는 관계형 DataBase 라고 부른다. 이는 Entity간에 관련이 있기 때문이다. 따라서 Entity간의 관계를 정의하면서 값을 저장해 놓은 시스템을 RDBMS 혹은 RDB 라고 정의한다. ( 그리고 나는 RDBMS 중에서 oracle 을 이용해서 DB관리법을 공부할 것이다!)

만약 여기 EMP employee라는  사원의 정보를 가진 Entity와 DEPT department 라는 부서의 정보를 가진 Entity 가 있다. 이 둘 Entity 간의 관계,Relationship 를 정의하면서 값을 저장해 놓은 시스템을 RDBMS 라고 한다.

Transaction : DB를 변화시키기 위한 최소한의 작업 단위.

Transaction의 특징

1.원자성: 모두 반영하거나, 모두 반영하지 못하면 이전의 상태로 되돌아간다. (All or Nothing)

  1. 일관성: 실행 이전과 실행 이후가 일관적이여야한다.

3.고립성: 실행 도중 다른 transaction의 영향을 받아서는 안된다.

4.지속성: 성공시 결과는 영구적으로 반영되어야 한다.

Transaction의 특징의 이해를 돕기 위한 예시

A가 B 에게 인터넷뱅킹으로 100$ 을 건네주려고 한다. 송금을 성공적으로 완료하기 위해선,

첫번째로, A가 계좌에 접속해야 하고

두번째로 A계좌에서 100불이 출금되고

세번째로 B계좌에 100불이 입급되고

네번쨰로 B가 계좌에 접속해서 100불을 확인해야 한다.

Transaction의 특징

원자성: 송금의 과정중 하나라도 잘못되면 송금은 취소가 되어 B는 100불을 받을 수없다

  1. 일관성: A가 100불을 송금했는데 B가 10불만 받아서는 안된다

3.고립성: A가 100불을 두개의 계좌로 50불씩 나눠서 공금할 경우, 각각의 계좌가 송금 할 때 서로 다른 계좌에 영향을 주어선 안된다. (1번 계좌에서 50불 입금하는 중인데 2번 계좌에서 70불을 입금하게 되는 오류가 난다?? 안됨.)

4.지속성: B가 분명 계좌에 100불 들어온거 확인했는데 내일 계좌 확인해보니까 50불이 증발해서 50불만 남아있으면 안된다.