본문 바로가기

SQL10

데이터 중심 애플리케이션 설계 - 복제 - 리더와 팔로워 복제: 네트워크로 연결된 여러 장비에 동일한 데이터의 복사본을 유지한다는 의미 복제가 필요한 이유 지리적으로 가깝게 유지해 지연 시간을 줄임 장애가 발생해도 지속적으로 동작하여 가용성 높임 장비의 수를 확충하여 읽기 처리량을 늘림 큰 데이터를 볼 때에는 파티셔닝을 살펴본다. 복제의 어려움은 변경처리에 있다. 복제를 위한 알고리즘 단일리더(single-leader): 다중리더(multi-leader) 리더없는(leader-less) 리더와 팔로워 replica: 복제된 데이터를 저장하는 각 노드 일반적인 해결책 리더기반 복제(leader-based replication) active , passive, master, slave) 리더가 되는 서버를 하나 지정한다(master, primary) 리더는 데이터.. 2023. 4. 18.
데이터 중심의 웹 애플리케이션 설계 - 1장 데이터 모델과 질의언어 부분 관계형 모델과 문서 모델 데이터 모델은 작성 뿐만 아니라 문제를 어떻게 생각해야하는지에 대해서도 지대한 영향을 끼친다. 각 계층은 명확한 데이터 모델을 제공해 하위 계층의 복잡성을 숨긴다.(잘된 추상화) 각 계층의 핵심적인 문제는 다음 하위계층 관점에서 데이터 모델을 표현하는 방법이다. 다양한 유형의 데이터모델이 있고, 각 데이터 모델은 사용 방법에 대한 가정을 나타낸다. 관계형 모델과 문서 모델 sql : 관계(relationship, columns)로 구성되고 각 관계는 튜플(tuple, rows)로 구성된다 관계형 데이터베이스의 근원은 컴퓨터에서 수행된 비즈니스 데이터처리에 있다.(트랜잭션 처리와 일괄처리) 1970~1980: 네트워크 모델, 계층 모델 ⇒ 관계형모델 1980~1990: 객체 데이터.. 2023. 4. 15.
[조각 SQL] 테이블 내의 CONSTRAINT 확인하기 가장 좋은 것은 TABLE 내의 제약을 건들이지 않는 것이지만, DB를 만지다보면 그것이 쉽지 않다. 제약을 수정해야하는 경우에는 CONSTRAINT NAME을 알아야 하는 경우가 있는데, 그럴 때는 아래를 써주면 된다. SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME=’table_name’; +--------------------+-------------------+-----------------+--------------+------------+-----------------+ | CONSTRAINT_CATALOG | CONSTRAINT_SCHEMA | CONSTRAINT_NAME | TABLE_SCHEMA | TABLE_NAM.. 2022. 5. 17.
[조각SQL] ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails 해결하기, 이미 생성된 테이블에 cascade 적용 MariaDB [db]> delete from table where id > 170000; ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constraint fails (`db`.`table`, CONSTRAINT `table_ibfk_1` FOREIGN KEY (`prev_id`) REFERENCES `table` (`id`)) 테이블에서 데이터를 삭제하려고 시도하니 아래와 같은 로그가 떴다. 이는 다른 테이블에 해당 데이터를 참조하고 있는 외래키가 있기 때문이다. 보통 테이블을 생성할 때 cascade 옵션을 사용하면, pk가 지워지면 해당 pk를 fk로 참조하는 데이터로 연계되어 삭제가 되지만, 내 경우에는 처음에 c.. 2022. 5. 17.