UNPKG

datapilot-cli

Version:

Enterprise-grade streaming multi-format data analysis with comprehensive statistical insights and intelligent relationship detection - supports CSV, JSON, Excel, TSV, Parquet - memory-efficient, cross-platform

57 lines 2.14 kB
/** * Smart FK/PK Detection Algorithms * Phase 1: Foundation Architecture - Relationship Detection Engine */ import { TableMeta, ForeignKeyCandidate, TableDependencyGraph, BusinessRule, TemporalJoin, IntegrityReport, JoinConfidence } from './types'; export declare class RelationshipDetector { private confidenceThreshold; private enableFuzzyMatching; private enableSemanticAnalysis; constructor(config?: { confidenceThreshold?: number; enableFuzzyMatching?: boolean; enableSemanticAnalysis?: boolean; }); /** * Detect foreign key relationships across multiple tables */ inferForeignKeys(tables: TableMeta[]): Promise<ForeignKeyCandidate[]>; /** * Build comprehensive dependency graph showing table relationships */ buildDependencyGraph(tables: TableMeta[]): Promise<TableDependencyGraph>; /** * Infer business relationships from table structures and naming patterns */ inferBusinessRelationships(graph: TableDependencyGraph): Promise<BusinessRule[]>; /** * Detect temporal relationships for time-series joins */ detectTemporalRelationships(tables: TableMeta[]): Promise<TemporalJoin[]>; /** * Validate referential integrity across identified relationships */ validateIntegrity(foreignKeys: ForeignKeyCandidate[]): Promise<IntegrityReport>; /** * Calculate semantic similarity between column names */ semanticSimilarity(col1: string, col2: string): number; /** * Analyze value distribution similarity between columns */ distributionSimilarity(data1: any[], data2: any[]): JoinConfidence; private detectForeignKeysBetweenTables; private inferCardinality; private calculateNodeLevels; private detectCycles; private calculateBusinessRuleConfidence; private identifyTimeColumns; private cleanColumnName; private levenshteinDistance; private calculateDistributionStats; private compareRanges; private comparePatterns; private compareTypes; private extractPatterns; } //# sourceMappingURL=relationship-detector.d.ts.map