Przejdź do głównej zawartości

Wzorce rozwoju baz danych

Wykorzystaj Cursor i Claude Code do zaawansowanego rozwoju baz danych. Te wzorce obejmują projektowanie schematów, optymalizację zapytań, migracje, tuning wydajności i najlepsze praktyki specyficzne dla baz danych w systemach SQL i NoSQL.

  1. Otwórz Cursor i utwórz nowy plik
  2. Aktywuj tryb Agent (Cmd/Ctrl + I)
  3. Prompt: “Zaprojektuj schemat bazy danych dla e-commerce z:
    • Użytkownikami, produktami, zamówieniami, inwentarzem
    • Właściwymi relacjami i ograniczeniami
    • Indeksami dla typowych zapytań
    • Polami audytu (created_at, updated_at)
    • Wsparciem soft delete”
  4. Agent generuje kompletny schemat z wyjaśnieniami
-- Prompt Cursor dla optymalizacji zapytań:
"Zoptymalizuj to wolne zapytanie:
SELECT * FROM orders o
JOIN users u ON o.user_id = u.id
WHERE o.created_at > '2024-01-01'
AND u.country = 'USA'
Rozważ:
- Użycie indeksów
- Plan wykonania zapytania
- Indeksy pokrywające
- Strategie partycjonowania"

Analiza zapytań AI

Cursor/Claude może:

  • Analizować plany wykonania zapytań
  • Sugerować brakujące indeksy
  • Przepisywać zapytania dla wydajności
  • Identyfikować problemy N+1
  • Generować benchmarki zapytań
-- Prompt: "Utwórz zapytanie analityczne używając funkcji okienka dla:
-- - Bieżących sum
-- - Rankingu w grupach
-- - Średnich ruchomych
-- - Porównań lag/lead
-- - Obliczeń percentyli"
-- Prompt specyficzny dla PostgreSQL:
"Zaimplementuj funkcje PostgreSQL:
- Kolumny JSONB z indeksami
- Wyszukiwanie pełnotekstowe z triggerami
- Partycjonowanie tabel według daty
- Foreign data wrappers
- Row-level security
- Materialized views"
  1. Analiza zapytań: “Użyj EXPLAIN ANALYZE do identyfikacji wąskich gardeł”
  2. Strategia indeksów: “Utwórz indeksy częściowe i wyrażeniowe”
  3. Strategia vacuum: “Skonfiguruj autovacuum dla dużych tabel”
  4. Pooling połączeń: “Skonfiguruj PgBouncer”
-- Prompt optymalizacji MySQL:
"Zoptymalizuj bazę danych MySQL dla:
- Wysokiej przepustowości zapisu
- Właściwego kodowania znaków
- Rozmiaru puli buforowej InnoDB
- Konfiguracji cache zapytań
- Konfiguracji replikacji
- Przycinania partycji"

Repliki read

-- Prompt: "Skonfiguruj repliki read z:
-- - Konfiguracją master-slave
-- - Rozdzieleniem read/write
-- - Monitorowaniem opóźnień
-- - Strategią failover"

Sharding

-- Prompt: "Zaimplementuj sharding dla:
-- - Partycjonowania opartego na użytkownikach
-- - Dystrybucji geograficznej
-- - Zapytań cross-shard
-- - Rebalansowania shardów"
// Prompt projektowania schematu MongoDB:
"Zaprojektuj kolekcje MongoDB dla aplikacji mediów społecznościowych:
- Zdenormalizowane dla wydajności odczytu
- Dokumenty embedded vs referenced
- Indeksy złożone
- Potoki agregacji
- Konfiguracja change streams
- Strategia shardingu"
// Wzorzec embedding:
"Modeluj relacje jeden-do-wielu z:
- Dokumentami embedded dla mniej niż 100 elementów
- Atomowymi aktualizacjami
- Pobieraniem jednym zapytaniem
- Rozważeniem ograniczeń rozmiaru"
-- Prompt implementacji Redis:
"Zaimplementuj cache'owanie Redis dla:
- Przechowywania sesji z TTL
- Wzorca cache-aside
- Cache'owania write-through
- Wiadomości pub/sub
- Sorted sets dla tabel wyników
- HyperLogLog dla liczenia"

Przypadki użycia Redis

AI może zaimplementować:

  • Ograniczanie częstotliwości ze sliding windows
  • Rozproszone blokady z Redlock
  • Analitykę w czasie rzeczywistym
  • Implementacje kolejek
  • Zapytania geoprzestrzenne
-- Prompt strategii migracji:
"Utwórz system migracji z:
- Wersjonowanymi migracjami
- Możliwościami rollback
- Wdrożeniami zero-downtime
- Migracjami danych
- Walidacją schematów
- Testowaniem migracji"
  1. Planowanie: “Przeanalizuj schematy źródłowe i docelowe”
  2. Pipeline ETL: “Utwórz logikę ekstrakcji i transformacji”
  3. Walidacja: “Zaimplementuj sprawdzanie integralności danych”
  4. Cutover: “Zaplanuj strategię migracji zero-downtime”
-- Prompt szeregów czasowych:
"Zaprojektuj bazę danych szeregów czasowych dla IoT:
- Efektywne indeksowanie timestamp
- Polityki retencji danych
- Agregaty ciągłe
- Strategie downsampling
- Techniki kompresji
- Optymalizacja zapytań"
// Prompt bazy danych grafowej:
"Modeluj sieć społecznościową w Neo4j:
- Węzły użytkowników i relacje
- Zapytanie o rekomendacje znajomych
- Algorytmy najkrótszej ścieżki
- Wykrywanie społeczności
- Optymalizacja wydajności
- Wzorce zapytań Cypher"
-- Prompt testowania baz danych:
"Utwórz testy baz danych dla:
- Walidacji schematów
- Testowania ograniczeń
- Benchmarków wydajności
- Sprawdzania integralności danych
- Testowania migracji
- Weryfikacji backup/restore"

Dane syntetyczne

-- Prompt: "Wygeneruj dane testowe:
-- - Realistyczne dystrybucje
-- - Relacje foreign key
-- - Przypadki brzegowe
-- - Wolumeny testów wydajności"

Maskowanie danych

-- Prompt: "Maskuj dane produkcyjne:
-- - Anonimizacja PII
-- - Spójne maskowanie
-- - Integralność referencyjna
-- - Odwracalne dla testów"
-- Prompt konfiguracji monitorowania:
"Zaimplementuj monitorowanie zapytań:
- Logowanie wolnych zapytań
- Metryki wydajności zapytań
- Statystyki użycia indeksów
- Monitorowanie blokad
- Metryki puli połączeń
- Automatyczne alerty"
  1. Zbieranie metryk: “Skonfiguruj eksportery Prometheus”
  2. Dashboardy: “Utwórz dashboardy Grafana”
  3. Alerty: “Skonfiguruj alerty wydajności”
  4. Analiza: “Zaimplementuj analizę planów zapytań”
Okno terminala
# Prompt implementacji backup:
"Utwórz strategię backup z:
- Automatycznymi codziennymi backupami
- Odzyskiwaniem point-in-time
- Testowaniem backupów
- Przechowywaniem offsite
- Szyfrowaniem at rest
- Procedurami odzyskiwania"
-- Prompt bezpieczeństwa:
"Zaimplementuj bezpieczeństwo bazy danych:
- Kontrola dostępu oparta na rolach
- Row-level security
- Szyfrowanie kolumn
- Logowanie audytu
- Zapobieganie SQL injection
- Szyfrowanie połączeń"

Najlepsze praktyki bezpieczeństwa

AI pomaga zaimplementować:

  • Zasadę najmniejszych uprawnień
  • Strategie szyfrowania danych
  • Wymagania compliance
  • Ścieżki audytu bezpieczeństwa
  • Skanowanie podatności
# Prompt wielobazowy:
"Zaprojektuj architekturę polyglot:
- PostgreSQL dla transakcji
- Redis dla cache'owania
- MongoDB dla dokumentów
- Elasticsearch dla wyszukiwania
- Synchronizacja danych
- Strategie spójności"
-- Strukturyzuj prompty jak:
"Zoptymalizuj [zapytanie/schemat] dla [przypadku użycia] uwzględniając:
- Obecny wolumen: [X] rekordów
- Tempo wzrostu: [Y] miesięcznie
- Stosunek read/write: [Z]
- Wymagania spójności
- SLA wydajności"
-- Implementacja event sourcing:
"Zaprojektuj event store z:
- Niezmienniym logiem zdarzeń
- Snapshotami agregatów
- Możliwością replay zdarzeń
- Aktualizacjami projekcji
- Wersjonowaniem zdarzeń
- Integracją CQRS"
# Konfiguracja proxy:
"Skonfiguruj proxy bazy danych dla:
- Poolingu połączeń
- Routingu zapytań
- Równoważenia obciążenia
- Obsługi failover
- Cache'owania zapytań
- Filtrowania bezpieczeństwa"