본문 바로가기
대학생활/수업

게임네트워크프로그래밍 9주차 - 관계데이터모델의 복습, 트랜잭션, 데이터베이스프로그래밍, 턴 방식 게임 학습

by se.jeon 2023. 5. 8.
728x90
반응형

7주차 - 관계데이터모델의 복습

릴레이션의 특징 이해

- relation : 릴레이션, 테이블

- relation data model : 관계 데이터 모델

- relation database : 관계 데이터베이스

- relational algebra : 관계대수

- relationship : 관계

릴레이션이라는 단어의 유의점 재설명.

 

기본키, 외래키의 복습

기본키 : 여러 후보키 중 하나를 선정하여 대표로 삼는 키.

외래키 : 다른 릴레이션의 기본키를 참조하는 속성.

릴레이션 간의 참조 관계 예시 학습.

 

무결성 제약 조건

- 데이터 무결성 : 데이터베이스에 저장된 데이터의 일관성과 정확성을 지키는 것

- 도메인 무결성 제약조건 (도메인 제약)

- 개체 무결성 제약조건 (기본키 제약)

- 참조 무결성 제약조건 (외래키 제약)

Unique : 동일한 데이터가 존재하면 안됨.

 

트랜잭션

트랜잭션 (transaction) : DBMS에서 데이터를 다루는 논리적인 작업의 단위.

하나의 세트로 구성되어 동립되게 동작해야 함.

# Commit, Rollback

 

데이터베이스에서 트랜잭션을 정의하는 이유

- 데이터베이스에서 데이터를 다룰 때 장애가 일어날 때 데이터를 복구하는 작업의 단위가 됨.

- 데이터베이스에서 여러 작업이 동시에 같은 데이터를 다룰 때가이 작업을 서로 분리하는 단위가 됨.

 

트랜잭션의 ACID 성질

- 원자성 (Atomicity) : 트랜잭션에 포함된 작업은 전부 수행되거나 아니면 전부 수행되지 않아야 (all or nothing)함.

- 일관성 (Consistency) : 트랜잭션을 수행하기 전이나 수행한 후나 데이터베이스는 항상 일관된 상태를 유지해야 함.

- 고립성 (Isolation) : 수행 중인 트랜잭션에 다른 트랜잭션이 끼어들어 변경 중인 데이터 값을 훼손하는 일이 없어야 함.

- 지속성 (Durability) : 수행을 성공적으로 완료한 트랜잭션은 변경한 데이터를 영구히 저장해야 함.

 

동시성 제어

동시성 제어 (Concurrency control) : 트랜잭션이 동시에 수행될 때, 일관성을 해치지 않도록 트랜잭션의 데이터 접근을 제어하는 DBMS의 기능.

락 : 데이터를 수정중이라는 사실을 알리는 방법의 잠금 장치.

- 공유락 (LS, shared lock) : 트랜잭션이 읽기를 할 때 사용하는 락.

- 배타락 (LX, exclusive lock) : 읽고 스기를 할 때 사용하는 락.

★ 데드락(교착상태) : 두 개 이상의 트랜잭션이 각각 자신의 데이터에 대하여 락을 획득하고 상대방 데이터에 대해 락을 요청하여 무한 대기 상태에 빠질 수 있는 현상.

 

데이터베이스 프로그래밍

데이터베이스 프로그래밍 방법

1. SQL 전용 언어를 사용하는 방법

2. ☆ 일반 프로그래밍 언어에 SQL을 삽입하여 사용하는 방법

3. 웹 프로그래밍 언어에 SQL을 삽입하여 사용하는 방법

4. 4GL(4th Generation Language)

 

게임 회사에서 주로 사용하는 DBMS : SQL Server, Oracle, MySQL

 

프로시저

프로시저를 정의하려면 CREATE PROCEDURE문을 사용한다.

- 삽입 작업을 하는 프로시저 : 프로시저로 데이터 삽입 작업을 하면 좀 더 복잡한 조건의 삽입 작업을 인자 값만 바꾸어 수행할 수도 있고, 저장해두었다가 필요할 때마다 호출하여 사용할 수도 있음.

- 제어문을 사용하는 프로시저 : 저장 프로그램의 제어문은 어떤 조건에서 어떤 코드가 실행되어야 하는지를 제어하기 위한 문법. 절차적 언어의 구성요소를 포함함.

- 결과를 반환하는 프로시저 : 커서(cursor)는 실행 결과 테이블을 한 번에 한 행씩 처리하기 위하여 테이블의 행을 순서대로 가리키는 데 사용함.

- 커서를 사용하는 프로시저

- 트리거

- 사용자 정의 함수

 

데이터베이스는 JAVA를 기반으로 예제가 굉장히 많다.

JAVA는 웹 기반의 핵심 언어. 알아두면 좋다.

JDBC, ODBC : DB를 연동하는 데에 사용됨.

 

데이터베이스의 장애와 회복

회복 (recovery) : 데이터베이스에 장애가 발생했을 때 데이터베이스를 일관성 있는 상태로 되돌리는 DBMS의 기능.

로그 파일 (log file) : 트랜잭션이 수행 중이거나 수행이 종료된 후 발생하는 데이터베이스 손실을 방지하기 위해 트랜잭션의 데이터베이스 기록을 추적하는 데에 사용된다.

 

데이터베이스의 보안과 관리

로그인 사용자 관리

- 사용자 계정 생성

- 사용자 계정 삭제

- 사용자 권한 관리

- 백업과 복원

 

지난 주 중간고사 과제물/ 추가 스터디 내용 발표

 

턴 방식 네트워크 게임 만들기

- 플레이어 입력

- 플레이어 기호 배치

- 플레이어 기호 배열 체크

- 플레이어 입력

- 플레이어 기호 배치

- 플레이어 기호 배열 체크

 

무엇을, 언제 통신할까?

통신할 정보와 게임에 반영할 타이밍을 각 단말에서 언제 처리할 지 생각할 것.

줄일 수 있다면 가능한 정보의 양을 줄여 적은 횟수로 전송하는 것이 중요하다.

알고 있는 정보는 보내지 않아도 된다.

 

프로그램으로 동작시키기

네트워크 프로그래밍 예제 학습.

오셀로 게임의 예시 학습.

가위바위보 게임의 예시 학습.

 

플레이를 반복할 것인지 체크하고 초기화하는 것이 중요하다.

타임아웃 타이머를 넣어주는 것이 좋다.

오류 처리에 대한 방법 학습.

728x90
반응형