##본 포스팅은 "데이터베이스 첫걸음 - 미크, 기무라 메이지" 책을 보고 요약한 것입니다. 지속성과 성능이 양립하는 구조 DBMS에서 데이터를 보존하는 기억장치는 대부분 하드디스크이다. 하드디스크에서 지속성을 실형하려면 쓰기를 전부 '동기화 쓰기'로 하면 좋겠지만, 데이터베이스의 쓰기는 기억장치의 임의 장소에 무작위로 액세스해서 쓰기를 수행하기 때문에 동기화 쓰기는 느려서 성능 면에서 실용적이지 않다. 그래서 지속성과 성능이 양립하도록 일반적으로 DBMS에서는 다음 구조를 사용한다. - 로그 선행 쓰기(WAL) 로그 선행 쓰기의 기본 개념은 데이터베이스의 데이터 파일 변경을 직접 수행하지 않고, 우선 로그로 변경 내용을 기술한 로그 레코드를 써서 동기화하는 구조이다. MySQL에서는 이로그를 InnoD..
##본 포스팅은 "SQL 첫걸음 - 아사이 아츠시" 책을 보고 요약한 것입니다. UNION 집합 연산 SELECT 명령을 실행하면 데이터베이스에 질의하여 그 결과 몇 개의 행이 반환된다. 이때 반환된 결과 전체를 하나의 집합이라고 생각하면 된다. SQL에서는 SELECT 명령의 실행결과를 하나의 집합으로 다룰 수 있다. 한번의 쿼리 실행으로 두 개의 SELECT 명령이 내부적으로 실행되는 형식이다. UNION을 사용하면 여러 개의 SELECT 명령을 하나로 묶을 수 있다. 이때 각각의 SELECT 명령의 열의 내용은 서로 일치해야한다. 열을 따로 지정하여 각 SELECT 명령에서 집합의 요소가 될 데이터를 서로 맞춰주면 UNION으로 실행할 수 있는 쿼리가 된다. 테이블의 나열 순서는 합집합의 결과에 영..
##본 포스팅은 "SQL 첫걸음 - 아사이 아츠시" 책을 보고 요약한 것입니다. LIMIT 행수 제한 인터넷 쇼핑몰에서 물건을 구매하거나 커뮤니티 사이트의 게시판을 읽다보면 수많은 상품과 게시물을 전부 하나의 페이지에 표시하는 대신 몇 건씩 나누어 표시하는 것을 알 수 있다. 이런 경우 LIMIT을 사용하여 표시할 건(행) 수를 제한할 수 있다. SELECT 열명 FROM 테이블명 LIMIT 행수 [OFFSET 시작행] LIMIT구는 표준 SQL은 아니다. MySQL과 PostgreSQL에서만 사용할 수 있다. WHERE 구나 ORDER BY 구의 뒤에 지정한다. SELECT 열명 FROM 테이블명 WHERE 조건식 ORDER BY 열명 LIMIT 행수 LIMIT 다음에는 최대 행수를 수치로 지정한다. ..
##본 포스팅은 "데이터베이스 첫걸음 - 미크, 기무라 메이지" 책을 보고 요약한 것입니다. 다중화 데이터베이스는 견고하게 유지되는 것이 중요하다. 이에 중요하게 여겨지는 것이 '다중화'에 대한 고려이다. 예를 들어, DB 서버가 2대 있다면 1대가 고장난다 하더라고 나머지 1대가 동작하면 서비스의 정지를 막을 수 있는데, 이를 '다중화' 또는 '고가용성'이라고 부른다. 아키텍처 '아키텍처'란 말은 다양한 의미가 있지만, 주로 '시스템을 만들기 위한 물리 레벨의 조합' 또는 '어떤 기능을 가진 서버를 준비하고 어떤 저장소나 네트워크 기기를 조합해서 시스템 전체를 만들 것인가' 즉 하드웨어와 미들웨어의 구성을 가리킨다. 이 구성을 시스템이 완수해야 할 목적과 비교하면서 결정하는 것이 '아키텍처 설계'이다...
##본 포스팅은 "SQL 첫걸음 - 아사이 아츠시" 책을 보고 요약한 것입니다. 정렬 - ORDER BY SELECT 명령의 ORDER BY 구를 사용하면 검색 결과의 행 순서를 바꿀 수 있다. ORDER BY를 사용하지 않을 경우에는 데이터베이스 내부에 저장된 순서로 반환된다. 1. ORDER BY로 검색 결과 정렬하기 SELECT * FROM table1 ORDER BY age; ORDER BY 뒤에는 정렬하고 싶은 열을 지정한다. 기본적으로는 오름차순으로 정렬하지만 DESC를 사용하면 내림차순으로도 정렬할 수 있다. **오름차순 : 1, 2, 3, 4... 2. 내림차순으로 정렬하기 SELECT * FROM table1 ORDER BY age DESC; 내림차순은 열명 뒤에 DESC를 붙여 지정한다..
##본 포스팅은 "데이터베이스 첫걸음 - 미크, 기무라 메이지" 책을 보고 요약한 것입니다. 초기비용과 운영비용 초기비용은 서비스를 구매할 때 최초에 지급하는 돈, 운영비용은 그 상품이나 서비스를 이용하는 기간에 계속 지급하는 돈이다. 개발자는 매력적인 시스템을 제안하기 위해서라도 '균형 잡힌 비용감각'은 필수이다. 아주 정밀하게 만들어진 고품질 시스템이더라도 사용자가 불편해서 전혀 사용하지 않으면 채산성도 얻지 못하고, '실패한 프로젝트'의 순서를 밟게 된다. 시스템 개발 실패의 예로는 개발 프로젝트 그 자체가 붕괴하는 '데스매치 패턴'이나 '시스템으로써는 잘 완성되었지만 릴리스해보니 투자금 회수를 못하고 적자 패턴'가 있습니다. > 초기 비용 소프트웨어의 라이선스 요금 '소프트웨어 사용허가료'로써 소..