본문 바로가기

Database4

Django replica 적용기(RDS + Postgresql) Database 이용 시 Replica를 사용하는 이유 High availability(고가용성) : replica 중 하나가 다운되더라도 데이터베이스를 항상 사용할 수 있도록 복제본을 사용할 수 있습니다. 예를 들면 Django에서 사용할 때 어떤 쿼리가 데이터베이스를 길게 잡아먹어서 데이터베이스가 다운되어도 읽기전용 Replica가 살아 있으면 해당 데이터베이스로 대신 사용 가능해서 고가용성으로 사용할 수 있습니다. Load balancing(로드벨런싱) : replica를 사용하여 들어오는 요청의 로드를 여러 시스템에 분산하여 데이터베이스의 성능과 확장성을 향상 시킬 수 있습니다. 예를 들면 데이터베이스 한개에서 Read와 Write를 사용하는데 특정 API를 Read하는 전용 데이터베이스를 생성시.. 2023. 1. 8.
Django multiple DB 문서정리 django multiple databases Multiple databases django는 여러개의 데이터베이스와 상호작용할 수 있습니다. 이것을 사용하기 위해서는 몇 가지 추가 단계를 수행해야 합니다. Defining your databases 맨 처음으로 해야할 일은 database를 한개 이상 사용한다고 서버에 알려줘야합니다. 이것은 database setting을 통해 작성할 수 있습니다. 이 설정은 Django 전체에서 특정 데이터베이스를 참조하는 방법인 데이터베이스 alias을 해당 connection에 대한 setting dictionary에 매핑합니다. 내부 dictionary의 설정은 DATABASE 설명서에 자세히 설명되어 있습니다. 데이터베이스는 선택한 alias를 가질 수 있습니.. 2022. 12. 19.
데이터 베이스에 외래 키 제약 조건이 없는 9가지 이유(참조 무결성 검사) - 번역 외래키가 있으면 문제가 있는 부분들 잠재적인 데이터 무결성 문제 외래 키가 없다는 명백한 문제는 데이터베이스가 참조 무결성을 시행 할 수 없으며 상위 레벨에서 제대로 처리되지 않으면 일관성 없는 데이터 테이블 관계가 명확하지 않다 데이터베이스에서 외래 키가 부족하여 눈에 띄지 않는 또 다른 부정적인 영향은 스키마를 모르는 사람이 올바른 테이블을 찾고 테이블 관계를 파악하는 데 어려움을 겪는다는 것입니다. 이로 인해 데이터베이스에서 쿼리하고 report하는 데 심각한 문제가 발생할 수 있습니다. 왜? 데이터베이스에 foreign key를 없게 하나 데이터베이스에 외래 키가 없는 이유에 대해 알겠습니다. 아래에 제시된 이유는 데이터베이스에서 외래 키 제약 조건을 사용하지 말 것을 권장하지 않습니다. 그것은 .. 2022. 10. 10.
django transaction(장고 트랜잭션) 트랜잭션 트랜잭션이란 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위입니다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을수 있는 시스템을 의미합니다. 트랜잭션의 목적 사용자가 데이터베이스 완전성(integrity)유지를 확신하게 합니다. 데이터베이스 서버에 여러 개의 클라이언트가 동시에 액세스 하거나 응용프로그램이 갱신을 처리하는 과정에서 중단될 수 있는 경우 등 데이터 부정합을 방지하고자 할 때 사용합니다. 트랜잭션 예시 A라는 사람이 B라는 사람에게 1,000원을 지급하고 B가 그 돈을 받은 경우, 이 거래 기록은 더 이상 작게 쪼갤 수가 없는 하나의 트랜잭션을 구성한다. 만약 A는 돈을 지불했으나 B는 돈을 받지 못했다면 그 거래는 성립.. 2022. 8. 25.