CS/DB

CS/DB

[Database] 트랜잭션 실패 & 복구(Recovery) 시스템

▼ What ? 이번 주 "Database" 강의 시간엔 트랜잭션이 실패하는 경우와 실패했을 때 어떤 식으로 복구하는지에 대해 배웠는데, 트랜잭션은 데이터베이스의 뼈대라고 할 수 있을 정도로 중요한 개념이라고 생각하기 때문에 오늘 배운 내용에 대해서도 복습하고 정리해두려고 한다. ▼ Failure Classification Transaction failure Logical errors ➜ Internal errors(wrong inputs, data loss, overflow, resource limit, etc.)로 인해 트랜잭션이 완료될 수 없다. ➜ 사용자 애플리케이션의 트랜잭션 레벨에서 발생한 에러이기 때문에 가장 사소하고 복구가 쉽다. System errors ➜ 'Deadlock' 과 같은 e..

CS/DB

[Database] Flash Storage 구조 · 원리

▼ Why ? What ? 이번 주 "Database" 강의에선 데이터베이스 강의에서 다룰 것이라 생각하지 못했던 내용들을 배웠다. 강의 내용의 주제는 "Physical Storage Systems" 였는데, 간단히 말하면 SSD나 HDD 같은 하드웨어가 어떠한 원리로 작동하는지를 배우는 것이었다. 교수님께서 데이터베이스에서 중요한 건 SQL 같은 것이 아니라 SQL이 어떠한 과정을 통해 데이터베이스에 적용되는지를 이해하는 것이라고 하셨다. ("데이터 통신" 시간에도 많이 들었지만 컴퓨터공학과 학생이 가질 수 있는 차별점은 CSS이기 때문에 수업을 들을 때도 이점을 유의하며 들어야 할 것 같다.) 그래서 그 중에 지금 가장 많이 사용한다고 할 수 있는 SDD, 즉 'Flash memory' 에 데이터가 ..

CS/DB

[Database] 데이터베이스 모델링 & E-R Model · ERD & UML

▼ Why ? What ? 이번 주 "Database" 강의에서 DB 모델링(Modeling)에 필요한 과정, 그리고 'E-R Model' 에 대해서 배웠고 이러한 E-R Model을 다이어그램(Diagram)으로 어떻게 작성(ERD)하는지에 대해 배웠다. 앞서 말한 개념들은 전부터 공부하려고 했던 파트들이었는데 계속 미루다보니.. 이번 기회에 기말 시험도 대비할 겸 강의 내용을 복습하면서 정리해보려고 한다. ▼ Database Modeling (Design Phases) 데이터베이스 모델링 ? 간단히 말해서, 데이터베이스 스키마 설계 프로세스라고 할 수 있다. Initial phase 잠재적(prospective) 사용자가 필요로 할 데이터, 즉 요구사항을 충분히 고려한다. Second phase 개념..

CS/DB

[Database] 데이터베이스 & DBMS(+ Schema) & Relation Model · RDBMS(+ NoSQL)

▼ Why ? What ? 이번에 처음으로 팀원들과 웹 개발 프로젝트를 진행하게 되어서 데이터베이스 뭔지, 그리고 Database는 어떻게 관리해야 하는 것인지에 대해 제대로 공부를 시작해보려고 한다. (+) "Database" 강의에서 배운 Relational model에 대한 내용도 추가적으로 정리했다 ! ▼ 데이터베이스 (Database) Database (DB) 데이터를 조회하고 저장하는 프로그램 데이터베이스 시스템(Database System)이 왜 필요한가? 데이터의 중복성(redundancy)과 비일관성(inconsistency)을 해결 ! ➜ 용량을 최소화할 수 있고 데이터를 효율적으로 다룰 수 있다. ( 이런 시스템을 유지하기 위한 규칙이 존재하긴 한다. ) 데이터에 접근(access)하..

CS/DB

[Database] 데이터베이스 트랜잭션(Transaction) & ACID

▼ Why ? What ? "Database" 강의시간에 배운 트랜잭션(Transaction)과 ACID는 데이터베이스를 다루기 전에 꼭 알고 있어야 하는 개념이기 때문에 따로 더 공부하고 정리해두려고 한다. ▼ DB Transaction 트랜잭션(Transaction) ? 트랜잭션 (Transaction) : 단일한 논리적인 작업 단위 (A single logical unit of work) 논리적인 이유로 여러 SQL문들을 단일 작업으로 묶어서 나눠질 수 없게 만든 것 ! 쉽게 말하면, 데이터베이스 애플리케이션에서 하나의 작업(logical function)을 수행하기 위해 필요한 DB 연산들을 모아놓은 것을 말한다. ➜ Transaction의 SQL문들 중에 일부만 성공해서 DB에 반영되는 일을 발..

CS/DB

[Database] JDBC & MySQL 연결

▼ Why ? What ? 이번 주 Database 강의 교수님께서 텀프로젝트에 대한 설명과 MySQL을 다운받고 (from Source or APT or Windows) JDBC 드라이버를 이용해 eclipse와 연결시키는 방법을 다루셨다. 난 Eclipse가 아닌 IntelliJ를 다루는 것이 좀 더 익숙해서 DB를 Intellij와 연동시켜봤는데, DB를 연동하는 과정이 생각보다 복잡하고 JDBC의 개념도 알아둘 필요가 있을 것 같아서 따로 정리해보려고 한다. ▼ JDBC JDBC (Java Database Connectivity) ? Java에서 DB를 다룰 수 있도록 도와주는 Java API이다 ➜ Java 언어와 DB를 연결해주는 통로와 같은 것 ! JDBC가 왜 필요할까 ? DB 학습시 SQ..

Uykm
'CS/DB' 카테고리의 글 목록